दिलचस्प पोस्ट
एक .NET डेटटाइम के मिलिसेकंड को कैसे छोटा करना मैं NSString मान को NSData में कैसे रूपांतरित करूं? कैसे प्रोग्रामेटिक रूप से स्थानांतरित, प्रतिलिपि और एसडी पर फाइलों और निर्देशिका को हटाएं? Web.xml में डिफ़ॉल्ट त्रुटि पृष्ठ को कैसे निर्दिष्ट करें? कोई संसाधन नहीं मिला – थीम। ऐप कॉमपेट। हल्का। डार्क ऍक्शन बैंक जावास्क्रिप्ट द्वारा अपडेट होने के बाद परिवर्तित HTML सामग्री प्राप्त करें? (htmlunit) विंडोज सर्विस जीयूआई एप्लीकेशन को कैसे कार्यान्वित कर सकती है? मैं PHP में किसी भी अनुरोध हेडर को कैसे पढ़ सकता हूँ सबसे उपयोगी NLog कॉन्फ़िगरेशन मैं jQuery में पृष्ठभूमि छवि आकार कैसे प्राप्त करूं? MATLAB के MEX कंपाइलर के रूप में जीसीसी (मिनजीडब्ल्यू) का उपयोग करना संस्थाओं / व्यावसायिक वस्तुओं के लिए निर्भरता को हल करने के लिए आईओसी कंटेनर का उपयोग क्यों न करें? मैं 2 डी बहुभुज के क्षेत्र की गणना कैसे करूं? कर्ल और SSL और कुकीज़ के साथ कैसे प्रवेश करें फ़ाइलों को अनझिप करना

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

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

कॉलिंग कोड

c.firstName = "a"; 

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

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

वेब के समाधान से एकत्रित समाधान "संपत्ति सेट क्यों 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; } }