私は一般的なコンテナクラスを持っています。私はOfTypeルーチンを記述しようとしています。しかし、私が渡している型もジェネリックです。ここでは例です:書く方法OfType <Foo<Bar>>()
Entities.OfType<Foo<Bar>>()
と私の関数の定義:
public IEnumerable T OfType<T>()
{
foreach (var e in Values)
if (e is T)
yield return (T)e;
}
エンティティが、私はFoo<Base>
から継承しないFoo<Bar>
エラーが出ますFoo<Base>
の集合として定義されている場合。しかしBarはBaseから継承します。
この制限はありますか?
共分散および反分散を調べる。 – Mehrdad
[Explicit Casting Problem]の重複可能性(http://stackoverflow.com/questions/1443341/explicit-casting-problem) – thecoop