質問
単純な構文の質問です(希望)、where句を使用して1つのジェネリック型を制約する方法は知っていますが、2つのジェネリック型を制約する方法は知っていますか?
たぶん最も簡単な方法は、構文についての私の最善の推測を書き留めることです。
public class GenericDaoGetByIdTests<TDao, TComponent> : BaseDaoTests
where TDao : IDao<TComponent>, TComponent : EDC2ORMComponent {
public void GetByIdTest(int id) { }
}
これによりエラーが発生します。誰でも正しい構文を知っていますか?
解決
2つの「where」キーワードを使用します。たとえば、次のような宣言があります。
public interface IParentNodeT<TChild, TSelf>
where TChild : IChildNodeT<TSelf, TChild>, INodeT<TChild>
where TSelf : IParentNodeT<TChild, TSelf>
{
TChild childRoot { get; set; }
}
他のヒント
これは動作するはずです:
public class GenericDaoGetByIdTests<TDao, TComponent> : BaseDaoTests
where TDao : IDao<TComponent> where TComponent : EDC2ORMComponent {
public void GetByIdTest(int id) { }
}
場所を繰り返すだけです。
所属していません StackOverflow