基本クラス Base と、それを継承するクラス A/B があります。
public class Base
{
int x;
}
public class A : Base
{
int y;
}
public class B : Base
{
int z;
}
次のように、必要なオブジェクトのみをフィルタリングするために OfType を使用しようとしました。
public static void RunSnippet()
{
Base xbase; A a; B b;
IEnumerable<Base> list = new List<Base>() {xbase, a, b};
Base f = list.OfType<A>; // I need to get only the object A
Console.WriteLine(f);
}
コードをコンパイルすると、次のエラーが発生しました。
エラー CS0428: メソッド グループ 'OfType' を非デリゲート型 'Base' に変換できません。メソッドを呼び出すつもりでしたか?
コードの何が問題になっていますか?