Chapter 6. Overloading Operators
C# adopted the capability of operator overloading from C++. Just as you can overload methods, you can overload operators such as
+, -, *, and so on. In addition to overloading arithmetic operators, you can also create custom conversion operators to convert from one type to another. You can overload other operators to allow objects to be used in Boolean test expressions.
Just Because You Can Doesn't Mean You Should
Overloading operators can make certain classes and structs more natural to use. However, overloading operators in a slipshod way can make code much more difficult to read and understand. You must be careful to consider the semantics of a type's operators. Be careful not to introduce something that is hard ...