यह उतना ही सरल है:
num1 = num2 = 5;
चर के बजाय किसी ऑब्जेक्ट प्रॉपर्टी का उपयोग करते समय, यह जानना दिलचस्प है कि getमध्यवर्ती मूल्य के एक्सेसर को नहीं कहा जाता है। setअसाइनमेंट सीक्वेंस में एक्सेस की गई सभी प्रॉपर्टी के लिए केवल एक्सेसर को इनवाइट किया जाता है।
उदाहरण के लिए एक वर्ग लें जो कंसोल को लिखता है हर बार getऔर setएक्सेसर को लागू किया जाता है।
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) काम करता है ।