गुण नियंत्रित डेटा तक पहुंच प्रदान करते हैं;
public int Foo {get;set;} // the compiler handles the field for you
हालांकि, आप संपत्ति तर्क लागू करने या पक्ष को संभालने के लिए इस्तेमाल कर सकते हैं: सबसे बुनियादी में, यह सिर्फ एक क्षेत्र (सार्वजनिक क्षेत्रों अनुशंसित नहीं हैं) है, जो संकलक आप के लिए आसान बना सकते हैं encapsulating मतलब हो सकता है प्रभाव:
01:
private int foo;
public int Foo {
get { return foo; }
set {
if(value < 0) throw new ArgumentOutOfRangeException();
if(value != foo) {
foo = value;
OnFooChanged(); // fire event notification for UI bindings
}
}
}
अन्य आम विकल्प आलसी लोडिंग, गणना के सदस्यों, प्रॉक्सी सदस्यों, आदि
तुम भी उदाहरण के लिए पहुँच को बदल सकते हैं, कर रहे हैं
जो को प्रकार और उप-वर्गों द्वारा असाइन किए गए कोड से नहीं, निर्दिष्ट किया जा सकता है। यह में केवल एक प्राप्त या सेट हो सकता है।
असल में, गुण तरीकों की एक प्राप्त/सेट जोड़ी की एक और अधिक औपचारिक संस्करण के रूप में कार्य है, यह बहुत आसान है "फू" के बारे में बात करने के लिए कर रही है, के बजाय "get_Foo"/"set_Foo" आदि (दो तरह के लिए बंधन)।
क्षेत्रों के विपरीत, गुण भी इंटरफेस पर विज्ञापित किया जा सकता है, जो आवश्यक है इंटरफ़ेस आधारित कोड
स्रोत
2011-06-25 08:51:25
विदेशी * * की तुलना में *? आप वर्तमान में क्या उपयोग कर रहे हैं? सार्वजनिक क्षेत्र? –
हाँ, सामान्य फ़ील्ड – Varmitharen
हाँ, ऐसा मत करो; सार्वजनिक क्षेत्र लगभग कभी भी एक अच्छा विचार नहीं है। –