Как ограничить несколько типичных типов?
Вот простой вопрос синтаксиса (я надеюсь), я знаю, как ограничить один общий тип, используя предложение where, но как ограничить два генерических типа?
Возможно, самый простой способ - записать то, что я думаю о синтаксисе.
public class GenericDaoGetByIdTests<TDao, TComponent> : BaseDaoTests
where TDao : IDao<TComponent>, TComponent : EDC2ORMComponent {
public void GetByIdTest(int id) { }
}
Это дает мне ошибку. Кто-нибудь знает, что такое правильный синтаксис?
Ответы
Ответ 1
Используйте два слова "where", например, у меня есть объявление вроде этого:
public interface IParentNodeT<TChild, TSelf>
where TChild : IChildNodeT<TSelf, TChild>, INodeT<TChild>
where TSelf : IParentNodeT<TChild, TSelf>
{
TChild childRoot { get; set; }
}
Ответ 2
Это должно работать:
public class GenericDaoGetByIdTests<TDao, TComponent> : BaseDaoTests
where TDao : IDao<TComponent> where TComponent : EDC2ORMComponent {
public void GetByIdTest(int id) { }
}
вы просто повторяете, где.