2011-09-08 15 views
18

है 'अभिव्यक्ति निर्धारित किये जाने से निरंतर होना चाहिए' वहाँ कुछ इस तरह उपयोग करने के लिए एक रास्ता है:प्राप्त जब यह

private const int MaxTextLength = "Text i want to use".Length; 

मुझे लगता है कि इसे और अधिक पठनीय और कम त्रुटि की तरह कुछ का उपयोग करने से होने का खतरा होगा:

private const int MaxTextLength = 18; 

क्या पाठ की लंबाई स्थिर चर के स्रोत होने का कोई तरीका है?

+9

"स्थिर चर"? – BoltClock

उत्तर

23
private readonly static int MaxTextLength = "Text i want to use".Length; 
12

const के बजाय static readonly का उपयोग करें।

स्थिरांक संकलन समय

+1

लेकिन स्टेटिक रीडोनली वैरिएबल केस स्टेटमेंट में काम नहीं करता है। – MSTdev

5

स्थिरांक दुर्भाग्यवश, अगर आप उपयोग कर रहे हैं स्थिरांक एक संकलन समय निरंतर '=' होना चाहिए के दाईं ओर मूल्य कीवर्ड रहना होगा। "स्ट्रिंग" का उपयोग करना। लम्बाई को निष्पादित करने के लिए .NET कोड की आवश्यकता होती है जो केवल तब हो सकता है जब अनुप्रयोग चल रहा हो, संकलन समय के दौरान नहीं।

आप एक आधार के बजाय क्षेत्र को पढ़ने के लिए विचार कर सकते हैं।

0

सुनिश्चित नहीं हैं कि क्यों आप ऐसा करना चाहते हैं, लेकिन कैसे के बारे में ...

private const string MaxText = "Text i want to use."; 

private static int MaxTextLength { get { return MaxText.Length; } } 
0

मूल्य एक स्थिरांक होने की जरूरत है? क्या आपके मामले के लिए एक स्थिर रीडोनली काम होगा?

private static readonly int MaxTextLength = "Text i want to use".Length; 

यह आपको अपने पहले उदाहरण के लिए कोड को उसी तरह लिखने की अनुमति देगा।

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