Перегрузка арифметического оператора для универсального класса в C #

Учитывая общее определение класса, как

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 и т. Д. Есть ли ограничение «где» для таких типов?

Ответы на вопрос(12)

Ваш ответ на вопрос