Atama işleçleri (C# başvurusu)
Atama işleci, sağ işleneninin değerini bir değişkene, özelliğine veya sol işleneni tarafından verilen bir dizin = öğesine atar. Atama ifadesinin sonucu, sol işlenene atanan değerdir. Sağ işlenenin türü, sol işlenenin türüyle aynı olmalı veya ona örtülü olarak dönüştürülebilir.
Atama = işleci, formun bir ifadesi olan sağ ile ilişkilidir
a = b = c
olarak değerlendirilir
a = (b = c)
Aşağıdaki örnek, atama işlecinin yerel değişken, özellik ve dizin öğesi ile sol işleneni olarak kullanımını gösterir:
var numbers = new List<double>() { 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
başvuru atama işleci
C# 7.3'den itibaren, başvuru atama işlecini kullanarak bir ref yerel veya ref salt okunur yerel değişken = ref yeniden ataması gerçekleştirin. Aşağıdaki örnek, başvuru atama işlecinin kullanımını gösterir:
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
Başvuru atama işleci durumunda, her iki işlenen de aynı türde olması gerekir.
Bileşik atama
İkili işleç op için, formun bileşik atama ifadesi
x op= y
eşdeğerdir
x = x op y
ancak x bu yalnızca bir kez değerlendirilir.
Bileşik atama aritmetik, Boolemantıksal ve bit olarak mantıksal ve kaydırma işleçleri tarafından de desteklene.
Null-coalescing ataması
C# 8.0'dan başlayarak, yalnızca sol işlenen olarak değerlendirilirse sağ işlenenin değerini sol işlenene atamak için null birikerek atama işleci ??= null kullanabilirsiniz. Daha fazla bilgi için bkz. ?? ve ?? = işleçler makalesi.
İşleç aşırı yüklemesi
Kullanıcı tanımlı bir tür atama işlecinin aşırı yüklemesi olamaz. Ancak, kullanıcı tanımlı bir tür başka bir türe örtülü bir dönüştürme tanımlayabilir. Bu şekilde, kullanıcı tanımlı türün değeri başka bir türün bir değişkenine, özelliğine veya dizin öğesine atanabilir. Daha fazla bilgi için bkz. Kullanıcı tanımlı dönüştürme işleçleri.
Kullanıcı tanımlı tür, bileşik atama işlecinin açıkça aşırı yüklenmesine neden olamaz. Ancak, kullanıcı tanımlı bir tür bir ikili işleci aşırı yüklerse, varsa işleci de örtülü op op= olarak aşırı yüklenmiştir.
C# dili belirtimi
Daha fazla bilgi için C# dil belirtimlerinin Atama işleçleri bölümüne bakın.
Başvuru atama işleci hakkında daha fazla bilgi için = ref özellik teklifi notuna bakın.