Для определения общего класса, такого как
public class ConstrainedNumber<T> :
IEquatable<ConstrainedNumber<T>>,
IEquatable<T>,
IComparable<ConstrainedNumber<T>>,
IComparable<T>,
IComparable where T:struct, IComparable, IComparable<T>, IEquatable<T>
Как я могу определить для него арифметические операторы?
Следующее не компилируется, потому что оператор '+' не может быть применен к типам 'T' и 'T':
public static T operator +( ConstrainedNumber<T> x, ConstrainedNumber<T> y)
{
return x._value + y._value;
}
Общий тип 'T' ограничен ключевым словом 'where', как вы можете видеть, но мне нужно ограничение для типов чисел, которые имеют арифметические операторы (IArithmetic?).
'T' будет примитивным типом числа, таким как int, float и т.д. Существует ли ограничение "where" для таких типов?