Я пытаюсь реализовать общий оператор следующим образом:
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. Я надеялся решить это с помощью общего оператора +, но я просто получил синтаксическую ошибку для вышеупомянутого (в <), заставляя меня полагать, что такой код не является законным.
Есть ли способ сделать общий оператор?