Podmioty gospodarcze (Podręcznik programowania C#)
W języku C# operator jest elementem programu, który jest stosowany do jednego lub więcej operandy w wyrażeniu lub wyciągu.Podmioty gospodarcze, które mają jeden operand, takich jak operator przyrostu (++) lub new, są określane jako jednoargumentowe podmiotów gospodarczych.Podmioty gospodarcze, które mają dwa operandy, takie jak operatory arytmetyczne (+,-,*,/), są określane jako binarne podmiotów gospodarczych.Jeden operator, operator warunkowy (?:), ma trzy operandy i jest jedynym operator trójargumentowy w języku C#.
Poniższa instrukcja języka C# zawiera operator jednoargumentowy jednego i jeden operand.Operator przyrostu ++, modyfikuje wartość operandu y.
y++;
Poniższa instrukcja języka C# zawiera dwa operatory dwuargumentowe, każdy o dwa operandy.Operator przypisania =, zmienna typu Liczba całkowita ma y i wyrażenie 2 + 3 jako argumenty.Wyrażenie 2 + 3 sobie składa się z operatorem dodawania i dwa operandy 2 i 3.
y = 2 + 3;
Podmioty gospodarcze, oceny i pierwszeństwo operatorów
Argument może być prawidłowe wyrażenie o dowolnym rozmiarze i mogą się składać z dowolnej liczby innych wyrażeń.W wyrażeniu zawiera wiele operatorów, kolejność stosowania operatorów jest określana przez pierwszeństwo operatorów, łącznośći nawiasy.
Każdy operator ma zdefiniowane pierwszeństwo.W wyrażeniu zawiera wiele operatorów, którzy mają pierwszeństwo przed różnych poziomów pierwszeństwo operatorów określa kolejność oceniania podmiotów gospodarczych.Na przykład, następująca instrukcja przypisuje 3 do n1.
n1 = 11 - 2 * 4;
Mnożenie jest wykonywane jako pierwsze ponieważ mnożenie ma pierwszeństwo przed odejmowania.
Poniższa tabela oddziela podmiotów gospodarczych na kategorie, na podstawie typu operacji, którą wykonują.Kategorie są wymienione w kolejności.
Operatory podstawowe
Wyrażenie |
Opis |
---|---|
x.y |
Członek access |
f(x) |
Wywołanie metody i pełnomocnik |
a[x] |
Dostęp do tablicy i indeksowania |
x++ |
Postinkrementacja |
x-- |
POST-decrement |
new T(...) |
Tworzenie obiektu i pełnomocnik |
newT(...){...} |
Tworzenie obiektów z inicjatora.See Obiektów i kolekcji inicjatorów (Podręcznik programowania C#). |
new {...} |
Inicjator anonimowego obiektu.See Typy anonimowe (Podręcznik programowania C#). |
newT[...] |
Tworzenie tablicy.See Tablice (Podręcznik programowania C#). |
typeof(T) |
Uzyskać obiekt System.Type T |
sprawdzone(x) |
Ocena wyrażenia w kontekście zaznaczone |
Ocena wyrażenia w kontekście niezaznaczone |
|
domyślne (T) |
Uzyskać domyślną wartość typu t |
Delegowanie {} |
Anonimowy działał (metody anonimowej) |
Operatory jednoargumentowe
Wyrażenie |
Opis |
---|---|
+x |
Tożsamość |
-x |
Negacja |
!x |
Negację logiczną |
~x |
Logiczną negacji |
++x |
Kszajä… |
--x |
Pre-decrement |
(T)x |
Jawnie przekonwertować x typu t |
Operatory multiplikatywne
Wyrażenie |
Opis |
---|---|
Mnożenie |
|
Rejon |
|
Reszta |
Operatory addytywne
Wyrażenie |
Opis |
---|---|
x + y |
Ponadto, konkatenacji ciągów, kombinacja delegata |
x - y |
Odejmowanie, usuwania obiektu delegowanego |
Operatory SHIFT
Wyrażenie |
Opis |
---|---|
x << y |
Przesuń w lewo |
x >> y |
Przesuń w prawo |
Relacyjne i wpisz operatorów
Wyrażenie |
Opis |
---|---|
x < y |
Mniej niż |
x > y |
Większe niż |
x <= y |
Mniejsze lub równe |
x >= y |
Większe niż lub równe |
x is T |
Zwraca wartość true, jeśli x jest T, false w przeciwnym razie |
x as T |
Zwrot x wpisana jako t lub null, jeśli x nie jest t |
Operatory równości
Wyrażenie |
Opis |
---|---|
x == y |
Równe |
x != y |
Nie równe |
Operatory logiczne, warunkowych i Null
Kategoria |
Wyrażenie |
Opis |
---|---|---|
Logiczne I |
x & y |
Liczba całkowita logiczną I, logiczna i logicznych |
Logiczne XOR. |
x ^ y |
Bitowe XOR Integer, boolean XOR logiczne |
Logiczne OR |
x | y |
Liczba całkowita logiczną lub, boolean lub logicznych |
Warunkowe I |
x && y |
Wynikiem y, tylko jeśli x jest PRAWDA |
LUB warunkowe |
x || y |
Wynikiem y tylko wtedy, gdy x ma wartość false |
Odbiorczego NULL |
x ?? y |
Wynikiem y, jeśli x jest null, aby x inaczej |
Warunkowe |
x ?: y : z |
Wynikiem y, jeśli x nie jest spełniony, z Jeśli x jest FAŁSZ |
Przypisanie i operatorów anonimowe
Wyrażenie |
Opis |
---|---|
Przypisania |
|
x op = y |
Przydział złożony.Supports these operators: +=, -=, *=, /=, %=, &=, |=, !=, <<=, >>= |
(T x) => y |
Funkcja anonimowa (lambda wyrażenie) |
Łączność
Gdy w wyrażeniu znajdują się dwa lub więcej operatorów, które mają ten sam priorytet, są oceniane, na podstawie łączność.Lewostronne operatory są oceniane w kolejności od lewej do prawej.Na przykład x * y / z jest oceniane jako (x * y) / z.Asocjacyjną prawo podmiotów gospodarczych są oceniane w kolejności od prawej do lewej.Na przykład operator przypisania jest prawo asocjacyjnej.Jeśli nie były, następujący kod spowoduje powstanie błędu.
int a, b, c;
c = 1;
// The following two lines are equivalent.
a = b = c;
a = (b = c);
// The following line, which forces left associativity, causes an error.
//(a = b) = c;
Operatory przypisania i operator trójargumentowy (?:) są prawo asocjacyjnej.Wszystkie operatory dwuargumentowe są pozostawiane asocjacyjnej.
Czy operatorów w wyrażeniu są pozostawiane asocjacyjnej lub prawo asocjacyjnych, operandy każdego wyrażenia są oceniane po pierwsze, od lewej do prawej.Poniższe przykłady ilustrują kolejność operatorów i operandów.
Instrukcja |
Kolejność obliczeń |
---|---|
a = b |
a, b = |
a = b + c |
a, b, c + = |
a = b + c * d |
, b, c, d, *, + = |
a = b * c + d |
a, b, c *, d, + = |
a = b - c + d |
a, b, c,-, d + = |
a += b -= c |
a, b, c, -=, += |
Dodawanie nawiasy
Można zmienić kolejność nałożonych przez priorytet i łączność operatorów, używając nawiasów.Na przykład 2 + 3 * 2 zazwyczaj wynikiem 8, ponieważ operatory multiplikatywne mają pierwszeństwo przed operatory addytywne.Jednakże jeśli zapis wyrażenia jako (2 + 3) * 2, dodanie jest sprawdzane przed rozmnażanie, a wynikiem jest 10.Poniższe przykłady ilustrują kolejność obliczeń w wyrażeniach ujętego w nawiasy.Jak w poprzednich przykładach operandy są sprawdzane przed zastosowaniem operatora.
Instrukcja |
Kolejność obliczeń |
---|---|
a = (b + c) * d |
a, b, c + d, *, = |
a = b - (c + d) |
, b, c, d, +, -, = |
a = (b + c) * (d - e) |
a, b, c, +, d, e, -, *, = |
Przeciążanie operatora
Można zmienić zachowanie operatorów niestandardowych klas i strukturach.Ten proces jest określany jako przeciążanie operatora.Aby uzyskać więcej informacji, zobacz Oczekiwano operatorów (Podręcznik programowania C#).
Sekcje pokrewne
Aby uzyskać więcej informacji, zobacz Operator słowa kluczowe (C# odniesienia) i Operatory języka C#.
Zobacz też
Informacje
Instrukcje, wyrażenia i operatorów (Podręcznik programowania C#)