दिलचस्प पोस्ट
गिट के द्विभाषण का उपयोग कैसे करें? फ़्लोटिंग पॉइंट संख्या गलत क्यों हैं? मैं वास्तव में विजुअल स्टूडियो 2012 में हर सेटिंग कैसे रीसेट कर सकता हूं? कस्टम HTML5 आवश्यक फ़ील्ड सत्यापन संदेश सेट करें सूची बनाम बाइनरी ट्री छोड़ें त्रुटि: कक्षा X को X.java नामक फ़ाइल में सार्वजनिक घोषित किया जाना चाहिए समान मूल्यों के निकटवर्ती चालकों को सूचकांक जोड़ें एंड्रॉइड पुल-टू-रिफ्रेश कैसे कार्यान्वित करें दो तालिकाओं के बीच अंतर वापसी करने के लिए एसक्यूएल क्वेरी स्क्रीन पर एक डीआईवी केंद्र के लिए jQuery का उपयोग करना क्षण जेएस दिनांक समय तुलना कॉलम में एक MySQL क्वेरी मोड़ पंक्तियां हो सकती हैं? Content_main.xml और activity_main.xml के बीच का अंतर? हटाए गए फ़ाइल का इतिहास जांचना ओवरलोडिंग ऑपरेटर == बनाम इक्वाल ()

संपत्ति सेट क्यों StackOverflow अपवाद फेंक है?

मुझे जावा पता है और आमतौर पर गेस्टेटर / सेटर तरीकों में डाल दिया जाएगा। मुझे निम्न कोड के साथ सी # में करने में दिलचस्पी है, लेकिन यह एक स्टैक ओव्हरफ्लो अपवाद फेंकता है मैं क्या गलत कर रहा हूं?

कॉलिंग कोड

c.firstName = "a"; 

संपत्ति संहिता

 public String firstName; { get { return firstName; } set { firstName = value; } } 

Solutions Collecting From Web of "संपत्ति सेट क्यों StackOverflow अपवाद फेंक है?"

ऐसा इसलिए है क्योंकि आप फिर से संपत्ति को बुला रहे हैं – set आप संपत्ति फिर से set कर रहे हैं, जो कि जब तक आप स्टैक उड़ाने तक विज्ञापन अनन्तता जारी रखता है।

आपको मूल्य रखने के लिए निजी बैकिंग फ़ील्ड की आवश्यकता है, जैसे

 private string firstName; public string FirstName { get { return this.firstName; } set { this.firstName = value; } } 

वैकल्पिक रूप से, यदि आप सी # 3.0 का उपयोग कर रहे हैं, तो आप एक ऑटो-प्रॉपर्टी का उपयोग कर सकते हैं, जो आपके लिए एक गुप्त बैकिंग फ़ील्ड बनाता है, उदा।

 public string FirstName { get; set; } 

आप अपनी प्रॉपर्टी में प्रॉपर्टी नाम सेट कर रहे हैं – फ़ील्ड नाम नहीं। यह बेहतर काम करेगा:

 private m_firstName; public String firstName; { get { return m_firstName; } set { m_firstName = value; } }