C# allows user-defined types to overload operators by defining static member functions using the operator keyword. Not all operators can be overloaded.
These unary operators can be overloaded : +, -, !, ~, ++, --, true, false
These binary operators can be overloaded : +, -, *, /, %, &, |, ^, <<, >>
The comparison operators can be overloaded : ==, !=, <, >, <=, >=
The conditional logical operators cannot be overloaded, but they are evaluated using & and |, which can be overloaded : &&, ||
The array indexing operator cannot be overloaded, but you can define indexers: [ ]
The cast operator cannot be overloaded, but you can define new conversion operators :( )
Assignment operators cannot be overloaded, but +=, for example, is evaluated using +, which can be overloaded : +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=
These operators cannot be overloaded : =, ., ?:, ->, new, is, sizeof, typeof
Overloadable Operators ASP.Net C#
Hot on Web: