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 बाधा है

P> अधिक उपयोगी होगा constraint

  जहां टी: struct, System.Enum  

जो C # द्वारा कोई अच्छा कारण नहीं है कि मैं बता सकता है के लिए निषिद्ध है । इस पर अधिक देखें और इसके लिए।


Comments

Popular posts from this blog

c# - How to capture HTTP packet with SharpPcap -

php - Multiple Select with Explode: only returns the word "Array" -

php - jQuery AJAX Post not working -