10.4 Constants
में सी # विनिर्देश के अनुसार:जहां टी: वर्ग सामान्य बाधा और स्थिरांक मूल्य घोषणा
प्रकार एक निरंतर घोषणा में निर्दिष्ट, sbyte, बाइट, छोटा है, ushort, पूर्णांक, uint होना चाहिए लंबा, उल, चार, फ्लोट, डबल, दशमलव, बूल, स्ट्रिंग, एनम-टाइप, या संदर्भ-प्रकार। प्रत्येक निरंतर-अभिव्यक्ति को लक्ष्य प्रकार या का मान प्राप्त करना चाहिए जिसे लक्ष्य प्रकार में एक अंतर्निहित रूपांतरण (§6.1) द्वारा परिवर्तित किया जा सकता है।
क्यों तो मैं निम्न कार्य नहीं कर सकते हैं:
public class GenericClass<T>
where T : class
{
public const T val = null;
}
कि संभव हो जाना चाहिए, क्योंकि:
where T : class
का मतलब है किThe type argument must be a reference type; this applies also to any class, interface, delegate, or array type
(MSDN से)- यह एक और संतुष्ट विनिर्देशों के शब्द: के अलावा संदर्भ-प्रकार के स्थिरांक के लिए एकमात्र संभावित मूल्य
null
है।
कोई भी संभावित स्पष्टीकरण?
'टी 'स्वयं ही एक सामान्य प्रकार पैरामीटर कहता है, संदर्भ प्रकार नहीं। – SLaks
जो कोई समझ नहीं आता है। आप 'कॉन्स्ट' को' स्थिर 'में क्यों नहीं बदलते? –
इसके अलावा, आप पृथ्वी पर ऐसा क्यों करना चाहते हैं? – SLaks