Наследование интерфейсов C# vs. Nemerle
От: _NN_ www.nemerleweb.com
Дата: 22.05.13 07:02
Оценка:
C#:
interface Q
{
    void F();
}

interface W : Q
{
    void F();
}

Все чисто.

Nemerle:
interface Q
{
    F() : void;
}

interface W : Q
{
    F() : void;
}


warning : N114: method W.F() : void hides method Q.F() : void inherited from base class. To make the current member override that implementation, add the `override' keyword. Otherwise add the `new' keyword.


Конечно 'override' в интерфейсах нельзя ставить, но советуется

Теперь обход проблемы:
Nemerle:
interface Q
{
  new F() : void;
}

interface W : Q
{
  new F() : void;
}

Все чисто.

C#:
interface Q
{
    new void F();
}

interface W : Q
{
    new void F();
}


warning CS0109: The member 'Q.F()' does not hide an inherited member. The new keyword is not required.


Несоответствие не очень радует.
Ну и конечно вопрос, как должен компилятор себя вести ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.