Operátory jazyka C#
Jazyk C# poskytuje rozsáhlou sadu operátorů, které jsou symboly, které určují operace, které mohou provést ve výrazu.Operace interních typů, jako např. ==, !=, <, >, <=, >=, binary +, binary -, ^, &,|, ~, ++, -- a sizeof() jsou obecně povoleny na výčtech.Kromě toho může být mnoho operátorů přetíženo uživatelem, čímž se změní jejich význam při aplikování na uživatelem definovaný typ.
V následující tabulce jsou uvedeni operátoři jazyka C# v pořadí podle priority.Operátory v každé skupině mají stejnou přednost.
Kategorie operátorů |
Operátory |
---|---|
Primární |
|
Unární |
|
Násobicí |
|
Aditivní |
|
Shift |
|
Relační a typové zkoušky |
|
Rovnost |
|
Logický operátor AND |
|
Logický operátor XOR |
|
Logický operátor OR |
|
Podmíněné AND |
|
Podmíněné OR |
|
Sloučení Null |
|
Podmíněné |
|
Přiřazení a výraz lambda |
Aritmetické přetečení
Aritmetické operátory (+, –, *, /) mohou vést k výsledkům, které jsou mimo rozsah možných hodnot z uvedeného číselného typu.Podrobnosti najdete v části pro konkrétního operátora, ale obecně platí:
Aritmetické přetečení celého čísla buď vyvolá OverflowException nebo zruší nejvýznamnější části výsledku.Dělení celého čísla nulou vždy vyvolá DivideByZeroException.
Plovoucí aritmetické přetečení nebo dělení nulou nikdy nevyvolá výjimku, protože typy s plovoucí desetinnou čárkou jsou založeny na standardu IEEE 754 a tak mají opatření představující nekonečno a NaN (není číslo).
Desetinné aritmetické přetečení vždy vyvolá OverflowException.Dělení desetinného čísla nulou vždy vyvolá DivideByZeroException.
Pokud dojde k přetečení celého čísla, závisí to, co se stane, na kontextu spuštění, který může být zaškrtnutý nebo nezaškrtnutý.V kontrolovaném kontextu je vyvoláno OverflowException.V nekontrolovaném kontextu jsou nejvýznamnější části výsledku ignorovány a provádění bude pokračovat.Proto jazyk C# umožňuje volbu zpracování nebo ignorování přetečení.
Kromě aritmetických operátorů, přetypování integrálového typu na integrálový typ může způsobit přetečení, například přetypování typu long na int a řídí se kontrolovaným a nekontrolovaným prováděním.Nicméně bitové operátory a operátory posunutí nikdy nezpůsobí přetečení.
Viz také
Referenční dokumentace
Přetížitelné operátory (Průvodce programováním v C#)