c# - Why can't I use System.ValueType as a generics constraint? -
- क्यों मैं
की एक बाधा का उपयोग नहीं कर सकता जहां टी: System.ValueType
? - माइक्रोसॉफ्ट इस प्रकार से एक प्रतिबंध से क्यों रोकता है?
उदाहरण:
क्यों 'निम्न मैं क्या करूँ?'
<पूर्व> // एक। नेट वर्ग सार्वजनिक शून्य बार में परिभाषित & lt; T & gt; (टी ए) जहां टी: ValueType {...} // मेरी कक्षा में परिभाषित सार्वजनिक शून्य foo & lt; T & gt; (टी ए) जहां टी: मान टाईप {बार & lt; T & gt; (ए); }
ValueType पर स्ट्रैट का उपयोग करने में क्या अंतर है?
// मेरी कक्षा सार्वजनिक void foo में परिभाषित & lt; T & gt; (टी ए) जहां टी : संरचना {बार & lt; T & gt; (ए);
का उपयोग करने के बीच दो अंतर हैं
जहां टी: स्ट्रक्चर
और
जहां T: ValueType
- बाद वाला
T
हो, जो कि एक संदर्भ प्रकार है। - बाद में
T
को एक नल योग्य मूल्य प्रकार
इन अंतरों में से सबसे पहले आप क्या चाहते हैं, लगभग कभी नहीं। दूसरा कभी-कभी उपयोगी हो सकता है; Nullable & lt; T & gt;
में थोड़ा अजीब है, यह न तो जहां टी: struct
और जहां T: class
बाधा है
जहां टी: struct, System.Enum
जो C # द्वारा कोई अच्छा कारण नहीं है कि मैं बता सकता है के लिए निषिद्ध है । इस पर अधिक देखें और इसके लिए।
Comments
Post a Comment