2009-05-22 12 views
6

कुछ की तरह:रेफरी या मूल्य (सी #) द्वारा विधि पैरामीटर पास करने के लिए एक सामान्य लघु दिशानिर्देश?

  • अगर विधि कॉल के बाद चर का मान दिया जाना है:
  • अगर विधि कॉल उपयोग रेफरी
  • से पहले instantiated जा सकता है अगर instantiated करने की आवश्यकता नहीं है कॉल करने से पहले

  • बाहर का उपयोग करें यदि चर के मूल्य विधि कॉल से, लौटने का निर्णय लेने से या की गणना अन्य मूल्यों न बाहर रेफरी

  • का उपयोग नहीं करते के लिए प्रयोग किया जाता है

क्या मुझे यह सही तरीके से मिला? आपका लघु दिशानिर्देश क्या है?

उत्तर

0

सुनिश्चित नहीं हैं कि अगर यह वास्तव में मूल्य प्रकारों के लिए अपने प्रश्न लेकिन रेफरी द्वारा एक मूल्य गुजर (बाहर कीवर्ड का उपयोग करके) मैं पाया है है में से एक अच्छा उपयोग ...

int i = 0; 

if (int.TryParse("StringRepresentation", out i) 
{ 
    // do something with i which has taken the value of a the previous successful TryParse 
} 
4

उत्तर दे रहा है:

  • तुम सिर्फ निहित मान का उपयोग करने न कि मूल स्थान में परिवर्तन (मूल्य से) डिफ़ॉल्ट गुजर विधि का उपयोग
  • आप मूल की दुकान में यह परिवर्तन करने के लिए की जरूरत है चाहते हैं, रेफरी का उपयोग करें। उदाहरण:

    int a = -3; 
    
    protected void EnsurePositiveValues(ref int value) 
    { 
        if (value < 0) 
         value = 0; 
    } 
    

संदर्भ प्रकार के लिए:

  • तुम सिर्फ उदाहरण का उपयोग करें या यह डिफ़ॉल्ट गुजर विधि (संदर्भ द्वारा उपयोग में परिवर्तन करने की जरूरत है; बुलाया जाना चाहिए "संदर्भ प्रतिलिपि द्वारा")
  • यदि आपको मूल संदर्भ में असाइन करना है (फिर) रेफरी का उपयोग करें। उदाहरण:

    User u = MembershipAPI.GetUser(312354); 
    
    protected void EnsureUser(ref User user) 
    { 
        if (user == null) 
         user = new User(); 
    } 
    
1

तुम भी खाते मूल्य और संदर्भ प्रकारों पर गौर करने की जरूरत है। पैरामीटर के रूप में किसी विधि के संदर्भ प्रकार को पास करते समय, आप चर के लिए पॉइंटर पास करते हैं। इसका अर्थ है कि विधि के अंदर आप चर में परिवर्तन कर सकते हैं और वे उस कोड के लिए उपलब्ध होंगे जो विधि कहलाता है, हालांकि यदि आप इसे शून्य पर सेट करते हैं, तो आप केवल पॉइंटर को शून्य पर सेट कर रहे हैं और चर आपके पर बरकरार रहेगा विधि रिटर्न।