Как ограничить несколько универсальных типов?
Вопрос
Вот простой синтаксический вопрос (я надеюсь), я знаю, как ограничить один универсальный тип, используя предложение where, но как ограничить два универсальных типа?
Возможно, самый простой способ - это записать, каково было мое лучшее предположение относительно синтаксиса.
public class GenericDaoGetByIdTests<TDao, TComponent> : BaseDaoTests
where TDao : IDao<TComponent>, TComponent : EDC2ORMComponent {
public void GetByIdTest(int id) { }
}
Это выдает мне сообщение об ошибке.Кто-нибудь знает, каков правильный синтаксис?
Решение
Используйте два ключевых слова '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