Question

Voici une question de syntaxe simple (j'espère), je sais comment contraindre un type générique à l'aide de la clause where, mais comment contraindre deux types génériques?

Peut-être que le moyen le plus simple est d’écrire ce que j’avais le mieux deviné sur la syntaxe.

public class GenericDaoGetByIdTests<TDao, TComponent> : BaseDaoTests 
  where TDao : IDao<TComponent>, TComponent : EDC2ORMComponent {
    public void GetByIdTest(int id) { }
}

Cela me donne une erreur. Quelqu'un sait quelle est la syntaxe correcte?

Était-ce utile?

La solution

Utilisez deux mots clés "où", par exemple, j'ai une déclaration comme celle-ci:

public interface IParentNodeT<TChild, TSelf>
    where TChild : IChildNodeT<TSelf, TChild>, INodeT<TChild>
    where TSelf : IParentNodeT<TChild, TSelf>
{
    TChild childRoot { get; set; }
}

Autres conseils

Cela devrait fonctionner:

public class GenericDaoGetByIdTests<TDao, TComponent> : BaseDaoTests 
  where TDao : IDao<TComponent> where TComponent : EDC2ORMComponent {
    public void GetByIdTest(int id) { }
}

vous venez de répéter où.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top