Ответ 1
Нет. Нет опции для типов по умолчанию для общих типов в С#.
Ваш второй пример часто является "лучшим" вариантом, если вам нужно это поведение.
Можно ли сделать что-то вроде
public class PriorityQueue<TValue, TPriority=int> where TPriority : IComparable
(обратите внимание на =int
)?
Прежде чем предложить, да, я знаю, что могу просто добавить еще одну строку:
public class PriorityQueue<TValue> : PriorityQueue<TValue, int> { }
Но мне интересно, можно ли это сделать как параметр.
Нет. Нет опции для типов по умолчанию для общих типов в С#.
Ваш второй пример часто является "лучшим" вариантом, если вам нужно это поведение.