Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.032 c
2-1172674149
ds120hp
2007-02-28 17:49
2007.03.25
Связь форм


15-1172681320
Чапаев
2007-02-28 19:48
2007.03.25
Про *.wav


15-1172329940
CCil
2007-02-24 18:12
2007.03.25
Почему google стоит так не дешево?


15-1171744096
Ne-Ld
2007-02-17 23:28
2007.03.25
Играю в датаминера. Главный вопрос - откуда брать пригодные


15-1172946626
Vikos
2007-03-03 21:30
2007.03.25
Delphi: (дата1-дата2)-выходные=кол.дней




   Наверх