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。