Sdílet prostřednictvím


Přetížitelné operátory (Průvodce programováním v 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 Postupy: Použití přetížení operátoru pro vytvoření třídy reprezentující komplexní čísla (Průvodce programováním v C#).

Viz také

Referenční dokumentace

Příkazy, výrazy a operátory (Průvodce programováním v C#)

Operátory (Průvodce programováním v C#)

Operátory jazyka C#

Koncepty

Průvodce programováním v C#

Další zdroje

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