मैं सोच रहा था कि एक स्थैतिक चर (कक्षा में) चित्र में कब आता है (प्रारंभिक)? क्या इंस्टेंस कन्स्ट्रक्टर के बाद पहली बार या कक्षा लोड के बाद बुलाया गया है? कक्षा लोडिंग कब होती है?स्थिर चर को सी # में प्रारंभ कब किया जाता है?
उत्तर
ओह, यह जटिल है। यह इस बात पर निर्भर करता है कि beforefieldinit
ध्वज सेट किया गया है, जो बदले में (सी # में) इस पर निर्भर करता है कि कोई स्थिर कन्स्ट्रक्टर है या नहीं। और बदतर; .NET 4 में मुझे विश्वास है कि व्यवहार इसे बदलने के बजाय इसे "आलसी" बनाने के लिए बदल गया है।
सचमुच, मैं यहां किसी विशिष्ट व्यवहार को कोड नहीं दूंगा; बस: जब तक आप उन्हें एक्सेस करने के लिए नियमित कोड का उपयोग करते हैं, तब तक उनका उपयोग करने का प्रयास करने से पहले स्थैतिक फ़ील्ड प्रारंभ किए जाएंगे।
+1 "मैं नहीं चाहता किसी भी विशिष्ट व्यवहार के लिए कोड ", बुद्धिमान सलाह – smirkingman
" नियमित कोड "कवर क्या करता है? –
@ डेविड सिफ्रिटास "सामान जो प्रतिबिंब नहीं है" (और अन्य चीट्स) –
यह प्रोग्रामिंग भाषा और पर्यावरण पर निर्भर हो सकता है, लेकिन आमतौर पर स्थैतिक चर वर्ग लोड पर प्रारंभ किए जाते हैं।
स्थैतिक चर पर एक अच्छा लेख इसी वर्ग लोड हो रहा है के बाद चित्र में आता है। यह कन्स्ट्रक्टर कॉलिंग के बाद नहीं है, क्योंकि जब हम कक्षा के ऑब्जेक्ट को बनाने के लिए नए ऑपरेटर का उपयोग कर रहे हैं तो कन्स्ट्रक्टर कॉलिंग खेल में आती है और स्थिर चर वर्ग स्तर पर ऑब्जेक्ट स्तर पर उपलब्ध नहीं होते हैं।
- 1. सी # में एक स्थिर कन्स्ट्रक्टर कब कहा जाता है?
- 2. + (शून्य) प्रारंभ नहीं किया जाता है (उद्देश्य सी)
- 3. सी ++ फ्रीिंग स्थिर चर
- 4. स्थिर वर्ग प्रारंभ कब होता है?
- 5. वीबीएनईटी में विंडोज फॉर्म नियंत्रण में कहां और कब प्रारंभ किया जाता है?
- 6. कब किया जाता है ReceiveMemoryWarning वास्तव में
- 7. गैर सी # में चर प्रारंभ
- 8. सी # चर प्रारंभ प्रश्न
- 9. संकलक द्वारा स्थिर स्थिर चर प्रारंभिकरण कैसे लागू किया जाता है?
- 10. एक वेक्टर कॉपी कब किया जाता है, एक संदर्भ कब पास किया जाता है?
- 11. परम जीन कब एकत्र किया जाता है?
- 12. क्या एक कॉन्स स्थिर चर को C++ हेडर फ़ाइल में प्रारंभ किया जाना चाहिए?
- 13. क्या सी @+ में '@' प्रयोग किया जाता है?
- 14. जावा - स्थिर प्रारंभिक ब्लॉक में अंतिम चर प्रारंभ किया जा सकता है?
- 15. स्ट्रिंगियो का उपयोग कब किया जाता है?
- 16. सी ++ में "यह" सूचक प्रारंभ कब होता है?
- 17. सी ++ कॉन्स स्थिर स्थिर घोषणा में दो बार उपयोग किया जाता है
- 18. सी ++ स्थिर चर
- 19. PyEval_InitThreads कब कहा जाता है?
- 20. सी ++ स्थिर चर
- 21. Backbone.js: _.bindAll() प्रारंभ में - इसका उपयोग क्यों किया जाता है?
- 22. सी ++ में पूर्णांक सदस्य चर (जो स्थिर स्थिर नहीं है) की शुरुआत क्यों है?
- 23. एफ # बनाम आयरनपीथन: दूसरे को कब पसंद किया जाता है?
- 24. सी ++ नेमस्पेस और स्थिर चर
- 25. "कक्षा var" को शून्य में प्रारंभ किया गया है?
- 26. चैनलयूआरएल वास्तव में कब उपयोग किया जाता है?
- 27. UITableViewCell पहचानकर्ताओं में स्थिर कीवर्ड क्यों उपयोग किया जाता है?
- 28. इस समारोह में "कब" क्यों प्रयोग किया जाता है?
- 29. विम में विज़ुअल मोड कब उपयोग किया जाता है?
- 30. सी ++ स्थिर पुस्तकालय में साझा वैश्विक चर
इस पर कई प्रश्नों में चर्चा की गई है, [स्थिर क्षेत्र प्रारंभिकरण सी # में कैसे काम करता है? ] (http://stackoverflow.com/questions/710793/how-does-static-field-initialization-work-in-c) और [सी # में स्थिर परिवर्तनीय प्रारंभिक क्रम क्या है? ] (http://stackoverflow.com/questions/1405709/what-is-the-static-variable-initialization-order-in-c)। –
@ मैथ्यू - अच्छे लिंक, लेकिन सीएलआई 4 के साथ वे गलत हो सकते हैं - या बल्कि: बिल्कुल * पूर्ण * नहीं; [यहां देखें] (http://msmvps.com/blogs/jon_skeet/archive/2010/01/26/type-initialization-changes-in-net-4-0.aspx) –