Главная страница
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.036 c
2-1172674149
ds120hp
2007-02-28 17:49
2007.03.25
Связь форм


2-1172953711
arturich
2007-03-03 23:28
2007.03.25
Загрузка веб страницы как html код


15-1172594281
ArtemESC
2007-02-27 19:38
2007.03.25
Завалил последний экзамен на последней пересдаче...


2-1172739333
iviom
2007-03-01 11:55
2007.03.25
DBComboBox


11-1151328705
lollol
2006-06-26 17:31
2007.03.25
Delphi SE and KOL