Общие операторы C #

Я пытаюсь реализовать такой универсальный оператор:

class Foo
{
   public static T operator +<T>(T a, T b) 
   {
       // Do something with a and b that makes sense for operator + here
   }
}

На самом деле я пытаюсь изящно обрабатывать наследование. При использовании стандартного оператора + в Foo, где T вместо «Foo», если кто-то является производным от Foo (скажем, Bar наследует Foo), тогда операция Bar + Bar все равно вернет Foo. Я надеялся решить эту проблему с помощью универсального оператора +, но я просто получил синтаксическую ошибку для вышеуказанного (в <), заставляя меня поверить, что такой код незаконен.

Есть ли способ создать универсальный оператор?

21
задан Shirik 6 May 2011 в 00:23
поделиться