Значение по умолчанию для родового типа?

Можно ли сделать что-то вроде

public class PriorityQueue<TValue, TPriority=int> where TPriority : IComparable

(обратите внимание на =int)?

Прежде чем предложить, да, я знаю, что могу просто добавить еще одну строку:

public class PriorityQueue<TValue> : PriorityQueue<TValue, int> { }

Но мне интересно, можно ли это сделать как параметр.

Ответ 1

Нет. Нет опции для типов по умолчанию для общих типов в С#.

Ваш второй пример часто является "лучшим" вариантом, если вам нужно это поведение.