मैं सी # सीख रहा हूं, और कक्षा में निजी क्षेत्र बनाने के बारे में सीख रहा हूं, और फील्ड मूल्यों के बजाय विधियों का पर्दाफाश करने के लिए गेटर्स और सेटर्स का उपयोग कर रहा हूं।शॉर्टैंड एक्सेसर्स और म्यूटेटर
get; set;
विधि में 1 और विधि 2 बराबर हैं? जैसे क्या दूसरा एक शॉर्टेंड है?
class Student
{
// Instance fields
private string name;
private int mark;
// Method 1
public string Name { get; set; }
// Method 2
public int Mark
{
get { return mark; }
set { mark = value; }
}
}
अंत में, विधि 2 इस्तेमाल किया जाएगा जब आप उदाहरण के लिए हो रही है या एक मूल्य निर्धारित करने से पहले एक गणना प्रदर्शन करने के लिए करना चाहते हैं? जैसे मूल्य को प्रतिशत में परिवर्तित करना या सत्यापन करना? जैसे
class Student
{
// Instance fields
private string name;
private double mark;
private int maxMark = 50;
// Method 1
public string Name { get; set; }
// Method 2
public double Mark
{
get { return mark; }
set { if (mark <= maxMark) mark = value/maxMark * 100; }
}
}
[इस उत्तर] पर एक नज़र डालें [http://stackoverflow.com/questions/15454470/why-arent-simple-properties-optimized-to-fields/15454538#15454538); यह कुछ विस्तार से दिखाता है। –
संभावित डुप्लिकेट [सी # में स्वचालित गुण क्या हैं और उनका उद्देश्य क्या है?] (Http://stackoverflow.com/questions/6001917/what-are-automatic-properties-in-c-sharp-and-what-is - उनके उद्देश्य) –