आप कभी भी "SomethingElse" मिल जाएगा। ऐसा इसलिए है क्योंकि कॉन्स्टेंटबी कॉन्स्टेंट ए पर निर्भर करता है।
आप लाइनों को भी स्विच कर सकते हैं और आपको एक ही परिणाम मिल जाएगा। संकलक जानता है कि कॉन्स्टेंटबी कॉन्स्टेंट ए पर निर्भर करता है और इसे तदनुसार संभाल लेगा, भले ही आप इसे आंशिक कक्षाओं में लिखें।
पूरी तरह से सुनिश्चित करने के लिए कि आप वीएस कमांड प्रॉम्प्ट चला सकते हैं और ILDASM को कॉल कर सकते हैं। वहां आप वास्तविक संकलित कोड देख सकते हैं।
ही, यदि आप निम्नलिखित आप एक संकलन त्रुटि मिलेगी करने की कोशिश:
private const string ConstantB = ConstantA + "Else";
private const string ConstantA = "Something" + ConstantB;
त्रुटि: 'ConsoleApplication2.Program.ConstantB' के लिए निरंतर मूल्य के मूल्यांकन एक परिपत्र परिभाषा शामिल है इस प्रकार का यह साबित करता है कि संकलक इसकी निर्भरताओं को जानता है।
जोड़ा गया: युक्ति संदर्भ Jon Skeet द्वारा ने कहा:
This is explicitly mentioned in section 10.4 of the C# 3 spec: Constants are permitted to depend on other constants within the same program as long as the dependencies are not of a circular nature. The compiler automatically arranges to evaluate the constant declarations in the appropriate order.
स्रोत
2009-08-17 13:20:58
@Svish, कृपया अपने जवाब –
@Nathan पर जॉन स्कीट की टिप्पणी देखते हैं, धन्यवाद, इस पर ध्यान नहीं दिया था: पी – Svish