Sdílet prostřednictvím


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

+, -, !, ~, ++, --, true, false

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í.

(T) x

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#)

Hospodářské subjekty C#

Koncepty

Příručka programování C#

Další zdroje

Proč jsou přetížené operátory vždy statické v jazyce C#?