Hozzárendelési operátorok (C#-referencia)
A hozzárendelési operátor =
hozzárendeli a jobb oldali operandus értékét egy változóhoz, egy tulajdonsághoz vagy egy indexelő elemhez, amelyet a bal oldali operandus adott. A hozzárendelési kifejezés eredménye a bal oldali operandushoz rendelt érték. A jobb oldali operandus típusának meg kell egyeznie a bal oldali operandus típusával, vagy implicit módon átalakíthatónak kell lennie hozzá.
A hozzárendelési operátor =
jobb asszociatív, vagyis az űrlap kifejezése
a = b = c
kiértékelése a következőképpen történik:
a = (b = c)
Az alábbi példa a hozzárendelési operátor használatát mutatja be egy helyi változóval, egy tulajdonsággal és egy indexelő elemet tartalmazó bal oldali operandussal:
List<double> numbers = [1.0, 2.0, 3.0];
Console.WriteLine(numbers.Capacity);
numbers.Capacity = 100;
Console.WriteLine(numbers.Capacity);
// Output:
// 4
// 100
int newFirstElement;
double originalFirstElement = numbers[0];
newFirstElement = 5;
numbers[0] = newFirstElement;
Console.WriteLine(originalFirstElement);
Console.WriteLine(numbers[0]);
// Output:
// 1
// 5
A feladat bal oldali operandusa megkapja a jobb oldali operandus értékét . Ha az operandusok értéktípusok, a hozzárendelés átmásolja a jobb oldali operandus tartalmát. Ha az operandusok referenciatípusok, a hozzárendelés átmásolja az objektumra mutató hivatkozást.
Ezt érték-hozzárendelésnek nevezzük: az érték hozzárendelése.
újraf hozzárendelés
A Ref-hozzárendelés= ref
a bal oldali operandusát a jobb oldali operandus aliasává teszi, ahogy az alábbi példa is mutatja:
void Display(double[] s) => Console.WriteLine(string.Join(" ", s));
double[] arr = { 0.0, 0.0, 0.0 };
Display(arr);
ref double arrayElement = ref arr[0];
arrayElement = 3.0;
Display(arr);
arrayElement = ref arr[arr.Length - 1];
arrayElement = 5.0;
Display(arr);
// Output:
// 0 0 0
// 3 0 0
// 3 0 5
Az előző példában a helyi referenciaváltozóarrayElement
az első tömbelem aliasaként van inicializálva. Ezután újra hozzárendeli ref
, hogy az utolsó tömbelemre hivatkozzon. Aliasként, amikor az értékét egy szokásos hozzárendelési operátorral =
frissíti, a megfelelő tömbelem is frissül.
A hozzárendelés bal oldali operandusa ref
lehet helyi referenciaváltozó,ref
mező és ref
, out
vagy in
metódusparaméter. Mindkét operandusnak azonos típusúnak kell lennie.
Összetett hozzárendelés
Bináris operátor op
esetén az űrlap összetett hozzárendelési kifejezése
x op= y
egyenértékű a
x = x op y
kivéve, hogy csak x
egyszer van kiértékelve.
Az összetett hozzárendelést aritmetikai, logikai logikai, bitenkénti logikai és shift operátorok támogatják.
Null-szenesítés hozzárendelése
A null-szenesítési hozzárendelési operátorral ??=
csak akkor rendelheti hozzá a jobb oldali operandus értékét a bal oldali operandushoz, ha a bal oldali operandus értéke.null
További információ: ?? és ?? = operátorok cikke.
Operátorok túlterhelése
A felhasználó által definiált típus nem terhelheti túl a hozzárendelési operátort. A felhasználó által definiált típus azonban definiálhat implicit átalakítást egy másik típusra. Így a felhasználó által definiált típus értéke hozzárendelhető egy másik típusú változóhoz, tulajdonsághoz vagy indexelő elemhez. További információ: Felhasználó által definiált konverziós operátorok.
A felhasználó által definiált típus nem tudja explicit módon túlterhelni az összetett hozzárendelési operátorokat. Ha azonban egy felhasználó által definiált típus túlterhel egy bináris operátort op
, akkor az op=
operátor is implicit módon túlterhelődik.
C# nyelvspecifikáció
További információ: A C# nyelv specifikációjának Hozzárendelési operátorok szakasza.
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: