2008-11-06 15 views
13

क्या मैं वास्तव में और वास्तव में फ़ील्ड प्रारंभ करने के लिए .NET पर भरोसा कर सकता हूं (जैसे चींटियों, structs और इसी तरह)? और क्या होगा यदि मैं अभी भी उन क्षेत्रों को शुरू करना चाहता हूं - क्या असर हो सकता है?डिफ़ॉल्ट मान द्वारा फ़ील्ड को प्रारंभ करना अनावश्यक है

+0

क्यों पृथ्वी पर इस टैग किया 'resharper' है? – developerbmw

+1

@developerbmw - यह * * resharper के साथ टैग किया गया था क्योंकि ReSharper इस बात की चेतावनी देता है: [link] (https://confluence.jetbrains.com/display/ReSharper/Redundant+field+initializer) –

+0

धन्यवाद @WaiHaLee – developerbmw

उत्तर

18

C# specification राज्यों (17.4.4)

एक क्षेत्र का प्रारंभिक मूल्य है, चाहे वह एक स्थिर क्षेत्र या एक उदाहरण क्षेत्र हो, डिफ़ॉल्ट मान है (§12.2) की फ़ील्ड का प्रकार। इस डिफ़ॉल्ट प्रारंभिक घटना से पहले किसी क्षेत्र के मूल्य का निरीक्षण करना संभव नहीं है, और इस प्रकार कोई फ़ील्ड कभी "अनियंत्रित" नहीं होता है।

सादर, tamberg

12

हां, आप वास्तव में फ़ील्ड को अपने डिफ़ॉल्ट मानों में प्रारंभ करने के लिए .NET पर भरोसा कर सकते हैं। मूल रूप से इसे स्पष्ट रूप से करने के लिए कोई प्रतिक्रिया नहीं है। (यहां एक छोटी सी चेतावनी: यदि आप स्थैतिक फ़ील्ड को स्पष्ट रूप से प्रारंभ करते हैं, तो प्रतिबिंब के माध्यम से दूसरी बार टाइप प्रारंभकर्ता को चलाने वाले किसी भी व्यक्ति को फिर से शुरू करना समाप्त हो जाएगा।) यह वास्तविक कोने का मामला है!)

जो कुछ भी बढ़ावा देता है आपके विशेष कोडबेस में सबसे अधिक पठनीयता। p.305 पर

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