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şkeni arrayElement
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,ref
alan ve ref
, out
veya in
yöntem parametresi olabilir. her iki işlenen de aynı türde olmalıdır.
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 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 null
kullanabilirsiniz. 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 op
aşı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.