Форум: "Прочее";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];
ВнизС#: интерфейсы с модификатором доступа 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.046 c