«Это было бы сложно реализовать» Это глупость. Это было бы тривиально реализовать. Работа по проверке типа по ограничениям шаблона не усложняется, потому что тип-кандидат появляется в другом месте, в файле (то есть в шаблоне, а не в его создании).
лонах C ++ можно указать, что определенный параметр типа является значением по умолчанию. То есть если явно не указано, он будет использовать тип T.
Это можно сделать или приблизить в C #?
Я ищу что-то вроде:
public class MyTemplate<T1, T2=string> {}
Так что экземпляр типа, который не указывает явноT2
:
MyTemplate<int> t = new MyTemplate<int>();
Было бы по существу:
MyTemplate<int, string> t = new MyTemplate<int, string>();
В конечном счете, я смотрю на случай, когда есть шаблон, который довольно широко используется, но я собираюсь расширить его с помощью дополнительного параметра типа. Я мог бы подкласс, я думаю, но мне было любопытно, если бы были другие варианты в этом ключе.