Ознакомился с некоторой литературой по этому поводу и ни как не могу понять стоит мне перегружать эти операторы для некоторых своих классов или нет. С одной стороны, я привык оператором == сравнивать именно значения. Но в MSDN написано, что не рекомендуется перегружать эти операторы если тип не является неизменяемым или типом значения. Чего я теряю если перегружу этот оператор в классе не являющимся типом значения? Возможность сравнивать на равенство ссылок, но я всегда могу привести к object и сравнить или воспользоваться RefernceEquals. С другой стороны, я могу везде для сравнения значений использовать Equals. Так почему-же Microsoft не рекомендует
Правда если мои классы будут использоваться сторонними классами от них могут ожидать другого поведения, но поведение будет описано в документации к моим классам. В общем я совсем запутался. Помогите определиться.