Re[3]: Теоретические основы определения интерфейса
От: SDiez Россия  
Дата: 27.07.15 07:01
Оценка: +1
Здравствуйте, AlexNek, Вы писали:

AN>Здравствуйте, xy012111, Вы писали:


X>>Здравствуйте, AlexNek, Вы писали:


AN>>>С названием темы непонятно как точно назвать, но смысл относительно простой.

AN>>>В разных языках существуют различные ограничения при определении интерфейса.
AN>>>Например, в VB.NET можно определять дополнительные типы как события, делегаты и енумы, а в C# нет.

X>>Покажите пожалуйста пример кода — что вы имеете в виду? А то недостаток практики на ВБ.НЕТ мешает понять.

AN>ну есть где- такой код на VB
AN>
AN>interface ISample
AN>{
AN>  enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};

AN>  delegate void SampleEventHandler(object sender, SampleEventArgs e);

AN>  event SampleEventHandler SampleEvent;

AN>  Days GetDays {get;}
AN>}
AN>



Ну, эвенты в C# можно в интерфейсы помещать:

    public interface IEvented
    {
        event EventHandler SampleEvent;
    }


С другой стороны, делегаты и энумы — это определения типов используемых в интерфейсе, а не самого интерфейса.

Зачем определения типов помещать внутрь интерфейса (добавлять дополнительный уровень вложенности), если их можно определить рядом, в том же файле?
Так что, имхо, вполне логичное ограничение, по Оккаме

Почему в VB так разрешено — не знаю, возможно по историческим причинам.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.