C# operator Keyword: Overloading, Binary and UnaryUse the operator keyword to develop overloaded binary and unary operators.
Operator. Consider a class instance. You cannot use a plus sign to add 2 classes together. But sometimes this makes logical sense—it should be possible.
With overloaded operators,
we can overload the plus sign (and other symbols). Overloaded operators sometimes improve program syntax.
Details: With the operator keyword, public static operator methods used by the compiler when the designated operators are encountered.Keywords
declares a Widget class. Here, Widgets can be added together or incremented. In the Widget class, we provide 2 public static methods: operator +, and operator ++.Class
Return: The methods return an instance of Widget. They receive 2 or 1 parameters—for binary (+) or unary (++).
Main: Here a new Widget instance is created and it uses the increment ++ operator. Its value is increased by 1, two times.Increment
Next: Another Widget is created. And finally we add the 2 widgets together with a single "+" operator.
So: When we add the 2 Widgets together, a new Widget is returned. This is conceptually the same way the string type works.
C# program that uses operator keyword
public int _value;
public static Widget operator +(Widget a, Widget b)
// Add two Widgets together.
// ... Add the two int values and return a new Widget.
Widget widget = new Widget();
widget._value = a._value + b._value;
public static Widget operator ++(Widget w)
// Increment this widget.
static void Main()
// Increment widget twice.
Widget w = new Widget();
// Create another widget.
Widget g = new Widget();
// Add two widgets.
Widget t = w + g;
Operator list. Many but not all operators in the C# language can be overloaded. This comes from the C# specification, which has more in-depth information on overloading.
Unary operators you can overload
Binary operators you can overload
It is not necessary to overload operators on every class you create. My opinion is that overloading operators is rarely required. It helps only on types that are commonly used.
Example: In the .NET Framework itself, the string type has overloads and these are useful (this is how concatenation works).Stringsstring.Concat
Thus: If you have a type that will be used in many places, then overloading it could be a good idea.
A summary. The operator keyword is used for overloading binary and unary operators. We provided an example of operator overloading. We saw a list of all the overloadable C# operators.
© 2007-2020 Sam Allen. Every person is special and unique. Send bug reports to firstname.lastname@example.org.