Přetěžovatelný operátory (Příručka programování C#)
C# umožňuje uživatelem definované typy definováním statický člen funkcí pomocí přetěžování operátorů operátor klíčové slovo.Všechny operátory mohou být přetížena, však a jiné mají omezení uvedené v této tabulce:
Operátory |
Overloadability |
---|---|
Tyto unární operátory mohou být přetížený. |
|
Tyto binární operátory mohou být přetížený. |
|
Operátory porovnání může být přetížena (ale viz poznámka, která následuje v této tabulce). |
|
Nemůže být přetížena podmíněné logické operátory, ale jsou vyhodnocovány pomocí & a |, může být přetížena. |
|
Operátor indexování pole nemůže být přetížena, ale můžete definovat indexování. |
|
Operátoru přetypování nemůže být přetížena, ale můžete definovat nové operátory převodu (viz explicit a implicitní). |
|
Nesmí být přetížené operátory přiřazení, ale +=, například je vyhodnocena pomocí +, může být přetížena. |
|
=, ., ?:, ??, ->, =>, f(x), as, checked, unchecked, default, delegate, is, new, sizeof, typeof |
Tyto operátory nesmí být přetížené. |
[!POZNÁMKA]
Operátory porovnání Pokud přetíženy, musí být přetížena páry; je-li == je přetížena != také být přetížena.Naopak je také PRAVDA a podobné pro < a >a <= a >=.
Operátor na vlastní třídu přetěžování vyžaduje vytvoření metodu ve třídě s správný podpis.Metoda musí mít název "provozovatelem X" kde x je název nebo symbol operátor přetížení.Unární operátory mají jeden parametr a binární operátory mají dva parametry.V každém případě jeden parametr musí být stejného typu jako třídy nebo struktura, která prohlašuje operátor, jak je ukázáno v následujícím příkladu:
public static Complex operator +(Complex c1, Complex c2)
Další informace naleznete v tématu Jak: použití operátoru přetížení vytvořit komplexní číslo třídy (Příručka programování C#).
Viz také
Referenční dokumentace
Příkazy, výrazy a operátory (Příručka programování C#)
Operátory (Příručka programování C#)