Главная страница
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.037 c
1-1170368901
FAskerQ
2007-02-02 01:28
2007.03.25
Как узнать время создания процесса?


10-1130395613
Тёма
2005-10-27 10:46
2007.03.25
ActiveX-компонент в word e без OCX


2-1172951338
KIBSOFT
2007-03-03 22:48
2007.03.25
Прога как бы зависает!


15-1173008259
Суслик
2007-03-04 14:37
2007.03.25
Посоветуйте blog


3-1167148645
V-A-V
2006-12-26 18:57
2007.03.25
Можно ли восстановить базу?