Comment contraindre plusieurs types génériques?
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?
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