Ошибка компилятора точно указывает на проблему.
Вы не можете «внедрить» перегрузку оператора в чужие типы - перегрузка оператора должна применяться к типу, в котором вы ее объявляете.
Термин «применить» в этом случае объясняется ошибкой компилятора: один из параметров должен быть этого типа;другой параметр может быть любого типа.
Так, например:
public class MyType
{
public static object operator +(MyType obj1, object obj2){
//define code for adding the object to 'MyType' and return object,
//or whatever type you want.
}
}
В этом примере мы создаем оператор между MyType
и object
, и он работает, потому что этоопределено внутри MyType
.Все перегрузки двоичных операторов должны следовать одному и тому же правилу.