У меня есть универсальный класс.
Код: Выделить всё
public class RadioCommandCollection : List where T : struct, IComparable
{
///
/// Sets the value associated with the selected menu item to button.
///
public void SetValue(T value)
{
foreach (RadioCommand command in this)
{
command.SetIsSelected(command.Value == value);
}
}
}
CS0019 Оператор «==» нельзя применить к операндам типа «T» и «T»
Обратите внимание, что RadioCommand< T>.Value имеет тип T. Кажется, я определяю T здесь только один раз. Я не понимаю конфликта.
Я добавил ограничение IComparable, но это не помогло. Обратите внимание, что я хотел бы ограничить T перечислением, но это недопустимое ограничение.
Подробнее здесь: https://stackoverflow.com/questions/614 ... neric-type