มันง่ายเหมือน:
num1 = num2 = 5;
เมื่อใช้คุณสมบัติวัตถุแทนตัวแปรเป็นที่น่าสนใจที่จะรู้ว่าตัวgetเข้าถึงค่ากลางไม่ถูกเรียกใช้ เพียงsetเรียกใช้ accessor สำหรับคุณสมบัติทั้งหมดที่เข้าถึงได้ในลำดับการกำหนด
ยกตัวอย่างคลาสที่เขียนไปยังคอนโซลทุกครั้งที่มีการเรียกใช้getและsetaccessor
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;
}
}
}
สิ่งนี้จะออก
AccessorTest.Value.get 5
AccessorTest.Value.set 5
AccessorTest.Value.set 5
หมายความว่าคอมไพเลอร์จะกำหนดค่าให้กับคุณสมบัติทั้งหมดและจะไม่อ่านค่าใหม่ทุกครั้งที่กำหนด
num1 = (num2 = 5)และการมอบหมายครั้งแรกที่ถูกดำเนินการ (num2 = 5) จะส่งกลับค่า 5 ไปยังโลกภายนอก - ซึ่งจะถูกกำหนดให้กับ num1 โฆษณานี้ทำงานได้ไม่ จำกัด (num0 = num1 = num2 = 5)