Atama işleçleri (C# başvurusu)

Atama işleci=, sağ işleneninin değerini sol işleneni tarafından verilen bir değişkene, özelliğe veya dizin oluşturucu öğesine atar. Atama ifadesinin sonucu, sol işlenene atanan değerdir. Sağ işlenenin türü, sol işlenenin türüyle aynı veya örtük olarak dönüştürülebilir olmalıdır.

Atama işleci = doğru ilişkilendirilir, yani formun ifadesidir

a = b = c

olarak değerlendirilir

a = (b = c)

Aşağıdaki örnek, atama işlecinin yerel değişken, özellik ve dizin oluşturucu öğesiyle sol tarafında işlenen olarak kullanımını gösterir:

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

Atamanın sol işleneni sağ işlenenin değerini alır. İşlenenler değer türlerinde olduğunda, atama sağ işlenenin içeriğini kopyalar. İşlenenler başvuru türünde olduğunda, atama başvuruyu nesneye kopyalar.

Buna değer ataması denir: değer atanır.

başvuru ataması

Başvuru ataması= ref , aşağıdaki örnekte gösterildiği gibi sol tarafındaki işleneni sağ işlenene bir diğer ad yapar:

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

Yukarıdaki örnekte, yerel başvuru değişkeniarrayElement ilk dizi öğesinin diğer adı olarak başlatılır. Ardından, ref son dizi öğesine başvurmak için yeniden atanır. Diğer ad olduğundan, değerini sıradan bir atama işleciyle =güncelleştirdiğinizde, buna karşılık gelen dizi öğesi de güncelleştirilir.

Atamanın sol işleneni ref yerel başvuru değişkeni,refalan ve ref, outveya in yöntem parametresi olabilir. her iki işlenen de aynı türde olmalıdır.

Bileşik atama

İkili işleç opiçin formun bileşik atama ifadesi

x op= y

eşdeğerdir

x = x op y

ancak bu x yalnızca bir kez değerlendirilir.

Bileşik atama aritmetik, Boole mantıksal ve bit düzeyinde mantıksal ve vardiya işleçleri tarafından desteklenir.

Null birleşim ataması

Sağ işleneninin değerini sol işlenenine atamak için null birleşim atama işlecini ??= yalnızca soldaki işlenen olarak değerlendirilirse nullkullanabilirsiniz. Daha fazla bilgi için bkz. ?? ve ?? = işleçler makalesi.

İşleç aşırı yüklenebilirliği

Kullanıcı tanımlı bir tür atama işlecini aşırı yükleyemez. Ancak, kullanıcı tanımlı bir tür başka bir türe örtük bir dönüştürme tanımlayabilir. Bu şekilde, kullanıcı tanımlı türün değeri bir değişkene, özelliğe veya başka bir türdeki dizin oluşturucu öğesine atanabilir. Daha fazla bilgi için bkz . Kullanıcı tanımlı dönüştürme işleçleri.

Kullanıcı tanımlı bir tür, bileşik atama işlecini açıkça aşırı yükleyemez. Ancak, kullanıcı tanımlı bir tür bir ikili işleci opaşırı yüklerse, op= varsa işleci de örtük olarak aşırı yüklenir.

C# dili belirtimi

Daha fazla bilgi için C# dil belirtiminin Atama işleçleri bölümüne bakın.

Ayrıca bkz.