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