मैं एक अपरिवर्तनीय और परिवर्तनीय प्रकार के बीच अंतर का प्रदर्शन करने के लिए एक त्वरित स्निपेट लिखने की कोशिश कर रहा हूं। क्या यह कोड आपके लिए सही प्रतीत होता है?अपरिवर्तनीय बनाम उत्परिवर्तनीय सी #
class MutableTypeExample
{
private string _test; //members are not readonly
public string Test
{
get { return _test; }
set { _test = value; } //class is mutable because it can be modified after being created
}
public MutableTypeExample(string test)
{
_test = test;
}
public void MakeTestFoo()
{
this.Test = "FOO!";
}
}
class ImmutableTypeExample
{
private readonly string _test; //all members are readonly
public string Test
{
get { return _test; } //no set allowed
}
public ImmutableTypeExample(string test) //immutable means you can only set members in the consutrctor. Once the object is instantiated it cannot be altered
{
_test = test;
}
public ImmutableTypeExample MakeTestFoo()
{
//this.Test = "FOO!"; //not allowed because it is readonly
return new ImmutableTypeExample("FOO!");
}
}
यह वर्ग नहीं है जो उत्परिवर्तनीय है लेकिन एक क्षेत्र है। जब तक 'readonly' फ़ील्ड केवल कन्स्ट्रक्टर कोड या प्रारंभिक समय पर असाइन किए जाते हैं, तब तक आप कक्षा में' readonly' और "सामान्य" फ़ील्ड को मिश्रित कर सकते हैं। – Matten
'ImmutableTypeExample MakeTestFoo() 'ज्यादा समझ में नहीं आता है। क्या यह स्थिर होना चाहिए? –