Я делаю что-то вроде этого:
public abstract class FolderNode<TChildNode,TChildBusObj> : Node
where TChildNode : MappedNode<TChildBusObj>, new()
where TChildBusObj : new()
{
..
}
Есть ли способ опустить TChildBusObj из определения, но все же иметь возможность доступа к нему в коде?Например, я хочу иметь возможность выводить универсальный тип универсального типа.Я пробовал это:
public abstract class FolderNode<TChildNode> : Node
where TChildNode : MappedNode<TChildBusObj>, new()
{
..
}
, но я получаю эту ошибку компиляции:
CS0246: Не удалось найти тип или имя пространства имен 'TChildBusObj' (вы пропустили директиву using или сборкуссылка?)
Обновление 22/01
Я действительно определил, что хочу:
public class Folder<TChildNode, TBusObj> : MappedNode<TBusObj[]>
where TChildNode : MappedNode<TBusObj>, new()
, который было бы неплохо сократитьна это:
public class Folder<MappedNode<TBusObj>, TBusObj> : MappedNode<TBusObj[]>
Но я не могу, потому что я получаю эту ошибку:
CS0081: Объявление параметра типа должно быть идентификатором, а не типом
Я полагаю, выне может анонимизировать вложенные универсальные типы в определении класса