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