class NameClass<T> : ParentClass, INameClass<T> where T : List<A>, List<B>, new() {}
Создаю класс, где <T>
булет принимать значения List<A>
или List<B>
.
У меня ругается на List<B>
.
Говорит:
Ошибка CS0406 Все другие ограничения должны следовать после ограничения типа класса "List<B>
"
Если меняю местами регается на List<A>
.
EDIT:
class NameClass<T> : ParentClass, INameClass<T> where T : List<T>, new() {}
Если написать так, то ошибки нет. Но я не уверен будет ли это правильно работать, не будет ли закольцованности?
Ошибка CS0406 возникает, потому что ты пытаешься определить параметр Т
как наследник от двух классов, что невозможно в C#.
В целом, как уже было отмечено в комментариях, по вопросу очень сложно судить о желаемом результате определения класса. Но, попытавшись догадаться, предлагаю такой вариант:
class NameClass<T> : ParentClass, INameClass<T> where T : List<ICommonAB>, new() {}
где ParentClass
, INameClass<T>
, ICommonAB
- уже определённые ранее классы, а также ICommonAB
является общим предком (или интерфейсом) классов A
и B
.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Мне необходимо в C# создать массив типа double с фиксированной величинойДалее я его заполняю значениями
Требуется разработать приложение, которое: 1выводит график функции на экран; 2
Товарищи, возникли некоторые вопросы по поводу runtime, связанные с именами переменных и проверкой их типов, однако для лучшего понимания распишу...
Добрый день у меня есть контекст Library, таблица BooksС помощью метода Load() я загружаю в Local данные и потом local привязываю к datagrid