सी # में मैं default(T)
का उपयोग किसी प्रकार का डिफ़ॉल्ट मान प्राप्त करने के लिए कर सकता हूं। मुझे System.Type
से रन टाइम पर डिफ़ॉल्ट प्रकार प्राप्त करने की आवश्यकता है। मैं यह कैसे कर सकता हूँ?मैं एक प्रकार के साथ डिफ़ॉल्ट (टी) कैसे कॉल कर सकता हूं?
उदा। इस की तर्ज पर कुछ (जो काम नहीं करता है)
var type = typeof(int);
var defaultValue = default(type);
मेरे प्रश्न लिखने के कुछ ही समय बाद मैं 'रिटर्न एक्सप्रेशन' के साथ आया। Lambda> (अभिव्यक्ति। कनवर्ट करें (अभिव्यक्ति.डिफॉल्ट (प्रकार), टाइपऑफ (ऑब्जेक्ट)))। संकलित()(); ', लेकिन आपका बहुत अच्छा है। –
GiddyUpHorsey
@Giddy: यह करने का एक बहुत ही महंगा तरीका होगा, क्योंकि आप अभिव्यक्ति के पेड़ को आईएल में संकलित कर रहे हैं (और उसके बाद जेआईटी को इसे मूल रूप से संकलित करना होगा) प्रत्येक आमंत्रण पर। –
हां, मैं सहमत हूं। यही कारण है कि मैं इसका उपयोग नहीं कर रहा हूं, और इसके बजाय मैडोगोम के समाधान का उपयोग कर रहा हूं। हालांकि, यह छोटा और अधिक पठनीय कोड था, प्रदर्शन नहीं, जिसने मुझे उसका उपयोग करने के लिए प्रेरित किया।प्रदर्शन मेरे परिदृश्य के लिए एक सौदा का बड़ा नहीं है। – GiddyUpHorsey