मैं हमेशा कुछ प्रकार की कम विशेषाधिकार वाली चीज़ों, या कम सुविधाओं वाले कुछ के रूप में संरचनाओं पर विचार करता था। शायद ओओपी अवधारणाओं के कारण कक्षाओं में सबकुछ उड़ रहा है।सी # में स्थिर संरचनाओं की अनुमति क्यों नहीं है?
सी # के संपर्क में थोड़ी सी मात्रा से, मैं समझता हूं कि कक्षा स्थिर स्थापित करना, यह सुनिश्चित करता है कि उसके सभी सदस्यों & फ़ंक्शंस स्थिर हैं। इसके अलावा हम उस कक्षा को शुरू करने के लिए एक कन्स्ट्रक्टर नहीं रख सकते क्योंकि केवल एक ही उदाहरण है।
public static struct mystruct
{
public static int a;
}
मुझे यहां स्टैक ओवरफ़्लो पर बताया गया था कि यह एक गलत विधि है। क्या कोई विस्तार कर सकता है।
मैं कह "स्थैतिक इस आइटम के लिए मान्य नहीं है" जब मैं एक नया सीएस फ़ाइल & कंसोल में यह संकलित बनाई उचित त्रुटि मिली। आश्चर्यजनक रूप से जब मैंने यह एक मौजूदा कार्य प्रोजेक्ट में जोड़ा ताकि यह देखने के लिए कि संकलक शिकायत करेगा लेकिन मेरे आश्चर्य के लिए यह नहीं है। इसके लिए कोई कारण ??
सी # में, '' static' एक प्रकार घोषणा पर सार sealed' के लिए एक उपनाम है पाया (यह भी इस तरह के यकीन तरीके हैं बनाने के रूप में कुछ अन्य संकलन समय चेकों की अनुमति देता है स्थैतिक भी)। चूंकि structs मूल्य प्रकार हैं और polymorphic व्यवहार की अनुमति नहीं है, तो यह समझ में आता है कि क्यों 'स्थिर' की अनुमति नहीं है। हालांकि, आप संरचना पर स्थिर सदस्य हो सकते हैं। –
@ स्टेव: यदि कक्षा स्थिर है, तो संकलक प्रकार के * उपयोग * की जांच भी करता है। उदाहरण के लिए, आप संख्या के पैरामीटर की घोषणा नहीं कर सकते हैं। आपको इसके बारे में पता ही हो सकता है, लेकिन मैं इसे ध्यान आकर्षित करना चाहता था :) –
@ जोन: यह सही है - मुझे याद दिलाने के लिए धन्यवाद। –