私は何かをしようとしていますが、これを呼び出す方法はわかりませんが、私はGoogle上で何か有用なものを見つけることはできません。私は、私は喜んでそのリスト内のすべての子を置くことができます親クラスのリストの子クラスのインスタンスを返す汎用メソッド
List<Parent> children = new List<Parent>();
を作成するが、私はトラブルにそれらを取得するための汎用的なメソッドを記述している場合、私は、基本クラスに
public class Parent{/*some code here*/}
と子クラス
public class Child1:Parent{/*more code*/}
public class Child2:Parent{/*expended behaviour*/}
を持っています。このような何か:
public T GetChild<T>()
{
var child = children.Find(c => c.GetType() == typeof(T));
if (child == null)
return default(T);
return child;
}
コンパイラは、最後の行に文句を言うと、私は明示的T
にchild
をキャストしようとした場合、それはいくつかのより多くの不平を言います。どうすればいいですか、助言してください。
しかし、2行目と3行目が必要ですか? FirstOrDefaultは何も見つからなければnullを返し、何も見つからなければ私のメソッドからnullを返すことを期待しています。 –
@DreadBoyはい、nullを返す場合は、この行を削除できます。 – Valentin
すごく、私はあなたの答えを受け入れています!ありがとうございました。 –