Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.25;
Скачать: CL | DM;

Вниз

С#: интерфейсы с модификатором доступа internal   Найти похожие ветки 

 
Cyrax ©   (2007-02-26 19:05) [0]

Облявляем интерфейс с модификатором internal. Все свойства и методы интерфейса автоматически становятся internal. Далее объявляем класс, реализующий этот интерфейс. Если класс объявить с модификатором public, то компилятор будет ругаться, т.к. уровень доступа методов и свойств интерфейса ниже, чем у реализуемых классом. Если же поставить internal, то всё должно быть в шоколаде. На практике же компилятор опять ругается на методы и свойства, реализуемые классом: что, мол, метод static, не public, либо не соответствуют возвращаемые типы. Выходит, что реализуемые согласно интерфейсу методы и свойства должны быть public. С чем связано это ограничение (если проблема в этом) ?  К тому же компилятор не ругается на internal интерфейса...


 
default ©   (2007-02-26 19:13) [1]

учи матчасть


 
Cyrax ©   (2007-02-26 19:18) [2]

учи матчасть
респект... Это мне нравится...


 
Канадец   (2007-02-26 19:26) [3]


> Все свойства и методы интерфейса автоматически становятся
> internal.


Неправда. Все свойства и методы интерфейса по умолчанию public и не подлежат переопределению. Посему даже объявив класс internal методы интерфейса вы обязаны определять как public за исключением случаев explicit interface implementation.


 
umbra ©   (2007-02-26 19:27) [4]

если речь идет о методе класса, который (метод) реализует метод интерфейса, то он должен быть виртуальным. ре-бемоль тут ни при чем, это правило СОМ


 
Cyrax ©   (2007-02-26 19:31) [5]

если речь идет о методе класса, который (метод) реализует метод интерфейса, то он должен быть виртуальным

Не понял. Метод класса реализует метод интерфейса. Кто здесь должен быть виртуальным ?


 
default ©   (2007-02-26 19:32) [6]

неявная реализация интерфейса - все члены класса соответствующие членам интерфейса должны быть public
явная реализация интерфейса - все члены класса соответствующие членам интерфейса являются private

таков C#
в VB .NET как угодно можно:)


 
umbra ©   (2007-02-26 19:33) [7]


> Кто здесь должен быть виртуальным ?

тот, кто реализует. метод интерфейса не может быть ни статическим ни, ни виртуальным, только абстрактным.


 
Канадец   (2007-02-26 19:45) [8]

default ©   (26.02.07 19:32) [6]

> явная реализация интерфейса - все члены класса соответствующие
> членам интерфейса являются private


Это не совсем так. Они и private и public одновременно. Короче они другие :)


 
Kolan ©   (2007-02-26 21:27) [9]

«Метод класса реализует метод интерфейса.»

Говорят так: «класс реализует интерфейс».



Страницы: 1 вся ветка

Текущий архив: 2007.03.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.039 c
15-1172518296
Rouse_
2007-02-26 22:31
2007.03.25
Новая дырка в ослике и FF (проверьте Оперу и NN)


15-1172752338
@!!ex
2007-03-01 15:32
2007.03.25
Просьба сделать в поиске настраиваемый фильтр.


15-1172507241
Calibr
2007-02-26 19:27
2007.03.25
Прозрачность


1-1170022420
San1
2007-01-29 01:13
2007.03.25
при работе с динамическим массивом ошибка EInvalidPoint


3-1167831546
olevacho_
2007-01-03 16:39
2007.03.25
синхронизация данных между базами