Вы не можете объявлять универсальные операторы в C # - я не уверен в рассуждениях, но предполагаю, что это полезная вещь по сравнению с усилиями для команды разработчиков (я думаю, что здесь может быть пост, где Джон Скит будет обсуждать его, или, возможно, на егоблог, когда он обсуждал вещи, которые он хотел бы видеть в C #).
Действительно, вы даже не можете использовать операторы с обобщениями в C #.
Это потому, что обобщенные элементы должныбыть применимыми для всех возможных типов, которые могут быть предоставлены.Вот почему вы должны использовать универсальный тип для классов, когда вы хотите использовать ==
, как показано ниже:
void IsEqual<T>(T x, T y) where T : class
{
return x == y;
}
К сожалению, вы не можете сделать:
void Add<T>(T x, T y) where T : operator +
{
return x + y;
}
Вас также может заинтересоватьв этой краткой сводной статье я наткнулся.