मैंने अब तक वास्तव में कभी इस पर सवाल नहीं उठाया है।कक्षा में स्थिर या निरंतर संपत्ति और एक ही नाम की एक इंस्टेंस प्रॉपर्टी क्यों नहीं हो सकती है?
public class SomeGridRow
{
public string Code { get;set; }
public string Description { get;set; }
public const string Code = "Code";
}
जाहिर है, इस त्रुटि देता है:: मैं क्षेत्रों की संख्या के साथ एक इनपुट मॉडल मिल गया है, मैं इनपुट मॉडल के माध्यम से संपत्तियों की स्ट्रिंग नाम पेश करने के लिए इतना है कि मेरी ग्रिड उनका उपयोग कर सकते चाहता था
The type 'SomeGridRow' already contains a definition for 'Code'
सीएलआर एक ही नाम के दो गुणों का सामना क्यों नहीं कर सकता है, जो मेरी आंखों में अलग हैं?
string code = gridRow.Code; // Actual member from instantiated class
string codeField = SomeGridRow.Code; // Static/Const
मैं अब सिर्फ एक बच्चे वर्ग अब मेरी जानकारी के भीतर Fields
कहा जाता है का उपयोग कर रहा है, इसलिए मैं SomeGridRow.Fields.Code
उपयोग कर सकते हैं। यह थोड़ा गन्दा है, लेकिन यह काम करता है।
ऐ, मैं सुपर जब यह वर्तनी हो तो यह स्पष्ट हो जाता है। मैंने हमेशा अपने वास्तविक वर्ग नाम का उपयोग करके पहुंच के रूप में स्थिर सदस्यों को लिया। कोडिंग मानकों का हिस्सा मैं काम करता हूं। – GenericTypeTea
@GenericTypeTea - और यह एक उत्कृष्ट मानक है, कक्षा के अंदर जहां यह सबसे अस्पष्ट है, मुझे शायद इस तरह से अनुमति नहीं दी जानी चाहिए ... लेकिन मुझे लगता है कि जिस तरह से यह समाप्त हुआ वह शायद कम से कम भ्रमित समझौता है। –
मैं सहमत हूं। यह एक आकार का एक और मामला है जो फिट नहीं है ... यह वास्तव में एक बड़ा मुद्दा नहीं है। मैं सिर्फ picky जा रहा हूँ। मैं सिर्फ नेस्टेड कक्षाओं से घृणा करता हूं। – GenericTypeTea