Что точно исключает #defining WIN32_LEAN_AND_MEAN?

Здесь вам нужна ковариация. В настоящее время C # 4 не допускает дисперсию для параметров типового типа в классах. Если вашему интерфейсу не нужно разрешать использование TContext в любых позициях ввода, вы можете рассмотреть возможность создания интерфейса и ковариантного в TContext:

interface ICmd<out TContext> where TContext : Context { }

class Cmd<TContext> : ICmd<TContext> where TContext : Context { }

static void Main(string[] args)
{
    Cmd<MyContext> cmd = new Cmd<MyContext>();

    var foo = cmd as ICmd<Context>;
}
141
задан fishfood 14 June 2012 в 19:35
поделиться