Множество ответов раскрыли, как вы это делаете. Теперь просто помните, что вы почти никогда не захотите делать это самостоятельно. Вы должны быть уверены, что любой, кто использует ваш класс, согласится с вами относительно того, что означает вычитание двух объектов MyClass. Если он представляет какую-то математическую структуру (вектор, матрицу и т. Д.), То вы, вероятно, в безопасности. В противном случае, это, вероятно, неясно. Обратите внимание, что Microsoft определила вычитание для DateTime, но не допустила
List<string> myList = new List<string>();
myList += "foo";
Каждый раз, когда вы пишете
static Foo operator -( Foo a, Foo b )
затем подумайте о том, что бы вы назвали этим методом, если вы не можете переопределить вычитание. Если наилучшее имя не Subtract
, то вы, вероятно, захотите просто создать метод с этим другим именем.