Кто там хотел трайты-миксины?
Неплохой ликбез по сабжу,
тынц и
тынц. Также см
тут.
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 можно глянуть
тут.
Как обычно, любая может быть отменена / поменяться в любой момент времени.