2013-08-28 3 views
8

मैं परप्रतिबंध परोक्ष टाइप करने के लिए लागू चर घोषणाओं

http://msdn.microsoft.com/en-us/library/bb384061.aspx

यह एक प्रतिबंध राज्यों के बारे में उलझाव से टाइप स्थानीय चर (वर) पढ़ रहा था:

एक प्रकार वर नामित में है, तो दायरा, फिर var कीवर्ड उस प्रकार के नाम को हल करेगा और एक स्पष्ट रूप से टाइप की गई स्थानीय चर घोषणा के हिस्से के रूप में नहीं माना जाएगा।

क्या कोई बता सकता है कि सी # उदाहरण के साथ कथन द्वारा क्या मतलब है?

उत्तर

12

कि अगर आप इस:

class var 
{ 
    public static implicit operator var(int value) 
    { 
     return new var(); 
    } 
} 

var myVar = 5; 

myVar प्रकार var का हो जाएगा और प्रकार int की नहीं।

(operator मैंने जोड़ा है ताकि int से var) में एक अंतर्निहित रूपांतरण हो।

यह नियम डाला गया था क्योंकि var सी # में एक आरक्षित कीवर्ड नहीं था (और अभी भी नहीं है ... यदि आप here देखते हैं तो आप देखेंगे कि यह "प्रासंगिक कीवर्ड" है), इसलिए कक्षा/संरचना/enum नाम var सी # 2.0 में मान्य था।

  • एक प्रकार वर नामित गुंजाइश में है: अगर वहाँ एक वर्ग/struct/enum नामित वर दायरे में (बस, वर लेखन एक नाम स्थान का उपयोग किए बिना द्वारा ऐसा "पहुंच योग्य") है

  • तो वर कीवर्ड उस प्रकार नाम हो जाएगी: तो var का अर्थ है "अपने उपयोगकर्ता परिभाषित प्रकार" और नहीं "कीवर्ड वर"

+0

कि बहुत ही स्पष्ट और सही expla है राष्ट्र!!! बहुत बहुत धन्यवाद –

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