निम्नलिखित कोड नमूना पर विचार करें:सी # गुंजाइश सवाल
// line #
{ // 1
// 2
{ // 3
double test = 0; // 4
} // 5
// 6
double test = 0; // 7
} // 8
यह त्रुटि
एक स्थानीय चर 'परीक्षण' नामक इस दायरे में घोषित नहीं किया जा सकता देता है क्योंकि यह करने के लिए एक अलग अर्थ देना होगा 'टेस्ट', जिसे पहले से ही किसी अन्य बच्चे को
को इंगित करने के लिए पहले से ही 'बच्चे' दायरे में उपयोग किया जाता है लेकिन मुझे समझ में नहीं आता क्यों? बाहरी टेस्ट वैरिएबल लाइन 7 में शुरू होता है और लाइन 2 में नहीं, तो लाइन 5 पर समाप्त होने वाले दायरे के साथ लाइन 4 पर परीक्षण नामक दूसरा चर घोषित करने की समस्या कहां है?
त्रुटि संदेश काफी यह सब कहते हैं। भाषा डिजाइनरों ने इस तरह से लोगों को भ्रम से बचने के लिए एक स्कोप्ड ब्लॉक के भीतर विभिन्न परिवर्तनीय नामों का उपयोग करने के लिए प्रोत्साहित किया, भले ही वे स्कोपिंग को अधिक कसकर लिख सकें। इस प्रकार, बाल क्षेत्रों में चर के पास अद्वितीय नामकरण होना चाहिए। –
http://blogs.msdn.com/b/ericlippert/archive/2009/11/02/simple-names-are-not-so-simple.aspx – LukeH
यह मुझे लगता है कि 'सफलता की पिट' का एक उदाहरण है .NET के विभिन्न हिस्सों के डिजाइन में दर्शन (रेफरी http://blogs.msdn.com/b/brada/archive/2003/10/02/50420.aspx) – AakashM