2010-11-10 17 views
11
sealed class PI 
{ 
    public static float number; 
    static PI() 
    { number = 3.141592653F; } 
    static public float val() 
    { return number; } 
} 
  1. सार्वजनिक स्थिर और स्थैतिक जनता के बीच क्या अंतर है? क्या वे किसी भी क्रम में इस्तेमाल किया जा सकता है?सार्वजनिक स्थैतिक बनाम स्थैतिक जनता - क्या कोई अंतर है?

  2. मैं कैसे static public float val() का प्रयोग करेंगे?

    यह जैसे ही कक्षा आरंभ नहीं हो जाता निष्पादित हो रहा है?

+0

एक दूसरा सवाल शायद एक अलग सवाल में कहा जाना चाहिए। – McKay

+1

पुराना धागा भी देखें [क्या सी # में संशोधक के क्रम में कोई सम्मेलन है?] (Http://stackoverflow.com/questions/191929/)। –

उत्तर

9

ठीक है, यह किसी व्यक्ति के नाम की तरह है =) कॉलिंग टॉम माइक या माइक टॉम, कोई फर्क नहीं पड़ता।

+7

शायद अगर आप सिंग कन्फू हैं और वे आपको कन्फू सिंग कहते हैं। –

+1

कृपया कोई फ्लर्टिंग धन्यवाद –

+0

क्षमा करें ........... – Singleton

9

संशोधक

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

बारे में दूसरा सवाल:

static public float val() 

यह सिर्फ एक स्थिर कार्य है। आप इसे PI.val() के साथ कॉल करते हैं। आपको इसे कॉल करने के लिए कक्षा के उदाहरण की आवश्यकता नहीं है, लेकिन इसे सीधे कक्षा में कॉल करें। एक स्थिर समारोह एक this संदर्भ प्राप्त नहीं होता है, आभासी नहीं किया जा सकता है, यह सिर्फ एक गैर OOP भाषा में एक समारोह की तरह है, सिवाय इसके कि यह नाम स्थान के रूप में वर्ग का उपयोग कर रहा है।

7

कोई अंतर नहीं है। उनके आदेश वहाँ कोई अंतर नहीं है एक दूसरे को

18

के संबंध में महत्वपूर्ण नहीं है। आप उन्हें किसी भी क्रम में निर्दिष्ट करने के लिए स्वतंत्र हैं। हालांकि, मुझे लगता है कि ज्यादातर डेवलपर्स सार्वजनिक स्थैतिक और स्थिर सार्वजनिक नहीं हैं।

+7

हां। सम्मेलन द्वारा पहले, अभिगम्यता संशोधक। हमेशा। –

4

के साथ दूसरे प्रश्न के संबंध: विधि एक वर्ग का एक उदाहरण के बिना उपलब्ध है, यह thusly कहा जा सकता है:

PI.val(); 

क्योंकि वर्ग केवल स्थिर सदस्य हैं, वर्ग शायद एक स्थिर होना चाहिए कक्षा, और फिर यह कभी शुरू नहीं किया जा सका।

5

अपने दूसरे सवाल का जवाब करने के लिए, यह शायद

public static class Pi 
{ 
    private static float pi = 0; 

    public static float GetValue() 
    { 
     if (pi == 0) 
      pi = 3.141592653F; // Expensive pi calculation goes here. 

     return pi; 
    } 
} 

के रूप में लिखा जाना चाहिए और यह thusly फोन:

float myPi = Pi.GetValue(); 

इस तरह के एक वर्ग लिखने के लिए कारण मूल्य कैश करने के लिए समय की बचत है विधि के बाद की कॉल पर। यदि पीआई प्राप्त करने के तरीके को गणना करने के लिए बहुत समय चाहिए, तो आप केवल एक बार गणना करना चाहते हैं।

+0

पीआई को छोड़कर शून्य नहीं हो सकता है क्योंकि यह एक मान प्रकार –

+0

@jesperll: निश्चित है। –

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