2013-10-07 19 views
6

इस कोड के साथ क्या गलत है? मैं इस त्रुटि मिलती है: "अभिव्यक्ति करने के लिए आवंटित किया जा रहा '....' निरंतर होना चाहिए"'....' को आवंटित अभिव्यक्ति निरंतर

public const string ConnectionString = System.IO.File.ReadAllText(@"D:\connection.ini"); 
+0

क्या आपने 'प्रलेखन] (http://msdn.microsoft.com/en-us/library/e6w8fe1b.aspx) को' const' पर पढ़ा था? – Jon

+0

संकलन समय पर 'कॉन्स्ट' मान को जाना जाना चाहिए। आपके उदाहरण में आप संकलक से दूर जाने और कोड के एक यादृच्छिक बिट निष्पादित करने के लिए कह रहे हैं - जो यह नहीं करेगा। – Rob

+0

आपका 'File.ReadAllText' भाग रनटाइम में मूल्यांकन किया जाता है,' const' का उपयोग संकलन-समय अभिव्यक्ति निर्दिष्ट करने के लिए किया जाता है। आप इसके बजाय 'readonly' का उपयोग कर सकते हैं। –

उत्तर

24

एक निरंतर मूल्य संकलन समय पर पता होना चाहिए, केवल पढ़ने के बजाय का उपयोग करें, यह एक समान प्रभाव पड़ेगा

+5

अधिक समान 'स्थिर रीडोनली' – Silvermind

+0

@ सिल्वरमाइंड आप सही हैं, लेकिन 'स्थैतिक रीडोनली' का अर्थ है कि त्रुटि से पुनर्प्राप्त करने के लिए कोई रास्ता नहीं है यदि स्थिर कन्स्ट्रक्टर निष्पादित होने पर फ़ाइल मौजूद नहीं है, तो मैं नहीं करता ऐसा नहीं लगता कि यहां 'रीडोनली' इंस्टेंस फ़ील्ड में सुधार होगा। – hvd

+0

@ एचवीडी, मैं सहमत हूं, लेकिन मैं इस तरह की एक फाइल लोड नहीं करना चाहूंगा जो मैं करता हूं। एक ही समस्या तब होती है जब यह स्थिर बीटीडब्ल्यू हो। – Silvermind

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