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