2016-10-14 6 views
8

क्या ऐसे मामले हैं जब आप सार्वजनिक रीडोनली फ़ील्ड बनाम चाहते हैं। एकमात्र ऑटो-लागू संपत्ति?सार्वजनिक पाठक क्षेत्र v.s. केवल संपत्ति प्राप्त करें

public class Foo 
{ 
    public readonly string Hello; 

    public string Hello2 { get; } 
} 

दोनों ही निर्माता दौरान सेट किया जा सकता है और दोनों वर्ग के बाहर केवल पढ़ने के लिए पहुँच प्रदान करते हैं .. मैं कुछ तो मैं याद आ रही हो सकता है एक छोटे से थक गया हूँ।

उत्तर

4

डेटा बाध्यकारी के लिए एक कारण होगा - .NET गुणों के लिए बाध्यकारी लागू करता है लेकिन सार्वजनिक क्षेत्रों में नहीं।

कुछ यहाँ चर्चा: Why can't we use public fields for data binding in C#?

+0

धन्यवाद पॉल, अच्छा उदाहरण। –

7

एक क्षेत्र के बजाय यह एक संपत्ति बनाने यह इंटरफेस पर इस्तेमाल किया जा सकता है।

सटीक कार्यान्वयन (हालांकि ऑटो-गुणों में वास्तव में बहुत अधिक कार्यान्वयन नहीं है ...) को भी सारणित किया जाता है, ताकि आप भविष्य में इसे तोड़ने (संकलन) संगतता के बिना खेतों के संयोजन पर आधारित कर सकें।

+0

महान उदाहरण धन्यवाद, मुझे पता था कि यहां कुछ स्पष्ट था जो मैं यहां लापता था। जिस संदर्भ में मैं सोच रहा था वह डिफ़ॉल्ट एएसपीनेट कोर टेम्पलेट में Startup.cs था, दिलचस्प रूप से स्टार्टअप एक इंटरफेस को लागू नहीं करता है, लेकिन शायद संपत्ति को कहीं और हुक के रूप में उपयोग किया जाता है। –

+1

मैं वास्तव में आपके और पॉलएफ के जवाब के रूप में चिह्नित करना चाहता हूं, क्योंकि वे दोनों समझते हैं कि वह थोड़ा जल्दी था, लेकिन अगर मैं तुम्हारा भी निशान कर सकता! –

संबंधित मुद्दे