5
public void Foo<T>(Func<T> bar)
 where T: IMyInterface
{
   Func<IMyInterface> func = bar;
}

共分散を理解してからしばらく経ちましたが、これをコンパイルするべきではありませんか?

何でもbar返すことができるのもIMyInterfaceです。問題であると想定されるのは?

4

1 に答える 1

7

これは C# 4 の共分散バグですか?

正しいコードは次のとおりです。

public void Foo<T>(Func<T> bar)
 where T: class, IMyInterface
{
   Func<IMyInterface> func = bar;
}
于 2012-04-16T12:24:50.233 に答える