Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

C# operator ==

22.06.18 16:59
C# operator ==
 
Murr патриот
Murr

C# operator ==


как он пишется надеюсь все помнят - public static Boolean operator ==(TObject a, TObject b) { ... }


Но меня интересует не этот вариант а чутк другой:

public static Boolean operator ==(TFirst a, TSecond b) { ... }


Т.е. вариант, когда сравниваются разнотипные объекты.

Написать сам компаратор разнотипных объектов - проблемы не представляет.


Вопрос возникает позднее, кода в коде имеется


TFirst a = new TFirst();

TSecond b = new TSecond();

if(a == b) { ... } // ok

if(b == a) { ... } // error


Операция ==, в общем-то, коммутативная, от положения операндов зависеть не должна.


Но Шарп "не понимает" коммутативность и потому придется писать парную свапнутую

операцию.


Как решаете подобные вопросы?

Пишете в том же классе или переносите в первый в операторе==?

 

Перейти на