Sesederhana:
num1 = num2 = 5;
Saat menggunakan properti objek alih-alih variabel, menarik untuk mengetahui bahwa getaccessor dari nilai antara tidak dipanggil. Hanya setaccessor yang dipanggil untuk semua properti yang diakses dalam urutan penetapan.
Ambil contoh kelas yang menulis ke konsol setiap kali getdan setaccessor dipanggil.
static void Main(string[] args)
{
var accessorSource = new AccessorTest(5);
var accessor1 = new AccessorTest();
var accessor2 = new AccessorTest();
accessor1.Value = accessor2.Value = accessorSource.Value;
Console.ReadLine();
}
public class AccessorTest
{
public AccessorTest(int value = default(int))
{
_Value = value;
}
private int _Value;
public int Value
{
get
{
Console.WriteLine("AccessorTest.Value.get {0}", _Value);
return _Value;
}
set
{
Console.WriteLine("AccessorTest.Value.set {0}", value);
_Value = value;
}
}
}
Ini akan menampilkan
AccessorTest.Value.get 5
AccessorTest.Value.set 5
AccessorTest.Value.set 5
Berarti kompiler akan menetapkan nilai untuk semua properti dan itu tidak akan membaca kembali nilai setiap kali ditugaskan.
num1 = (num2 = 5)dan tugas pertama yang dieksekusi (num2 = 5) mengembalikan nilai 5 ke dunia luar - yang pada gilirannya ditugaskan ke num1. Ini berfungsi ad infinitum (num0 = num1 = num2 = 5).