質問

単純な構文の質問です(希望)、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) { }
}

場所を繰り返すだけです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top