public class clsA<T, T1>
where T : class
where T1 : class
{
public T GetEntity()
{
return (T) new clsB<T1>();
}
}
エラーが発生しますタイプをTに変換できません
clsB<T1>
助けてください
これは、たとえば、キャストが失敗する原因となる可能性があるためですT
。変数型にできないstring
場合は、それを総称引数リストに含めないでください。T
または任意のサブタイプを許可T
しclsB<T1>
、そのクラスのインスタンスを作成する場合は、代わりに次のようにします。
public class clsA<T, T1>
where T : clsB<T1>, new()
where T1 : class
{
public T GetEntity()
{
return new T();
}
}
次に、タイプを指定します。
public class clsC : clsB<string> { }
GetEntity()
タイプのオブジェクトを呼び出すclsA<clsC, string>
と、のインスタンスが作成されて返されますclsC
。