[Ann] Next big thing in c#: default interface methods
От: Sinix  
Дата: 19.03.17 15:25
Оценка: 309 (15)
Кто там хотел трайты-миксины?
Неплохой ликбез по сабжу, тынц и тынц. Также см тут.

interface IA
{
    void M() { WriteLine("IA.M"); }
}

class C : IA { } // OK

// ...

IA i = new C();
i.M(); // prints "IA.M"


Diamond inheritance разруливается через явные вызовы:
interface IA
{
    void M() { WriteLine("IA.M"); }
}
interface IB : IA
{
    override void IA.M() { WriteLine("IB.M"); }
}
interface IC : IA
{
    override void IA.M() { WriteLine("IC.M"); }
}

class D : IA, IB, IC
{
    void IA.M() { IB.base.M(); } 
}


Текущее предложение предусматривает поддержку со стороны CLR и возможность добавлять новые члены в интерфейс, не ломая бинарную совместимость.

Остальные фичи с разбивкой по milestones можно глянуть тут.
Как обычно, любая может быть отменена / поменяться в любой момент времени.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.