2010-06-30 16 views
14

मुझे उत्सुकता है कि सी # में टाइपऑफ के लिए "विधि निकाय" कैसा दिखता है (मुझे यकीन है कि मैं इसे परावर्तक में नहीं प्राप्त कर सकता क्योंकि यह एक कीवर्ड नहीं है)।'टाइपऑफ' कैसे काम करता है?

मुझे लगता है कि यह गेटटाइप (जादू परिवर्तक प्रतीक) के बराबर है।

GetType (स्ट्रिंग) परावर्तक में यह एक तरीका है "PrivateGetType" है, जो "RuntimeTypeHandle.GetTypeByName" कहता है, और RuntimeTypeHandle उस में प्रकार के पीछे तर्क का एक बहुत कुछ है लगता है कॉल को देखते हुए, लेकिन GetTypeByName सामान नहीं है परावर्तक में दिखाओ।

उत्तर

13

आप की तरह कुछ करते हैं:

Type t = typeof(string); 

फिर संकलक एक ldtoken MSIL अनुदेश के typeof(string) सा संकलित और फिर Type.GetTypeFromHandle कॉल Type वर्ग का एक उदाहरण मिलता है।

Type.GetTypeFromHandle रनटाइम द्वारा कार्यान्वित किया जाता है (यही कारण है कि इसे "MethodImplOptions.InternalCall" विशेषता के साथ चिह्नित किया गया है)। आप इसे वास्तव में कार्यान्वित करने के तरीके के लिए मोनो को स्रोत कोड देख सकते हैं, लेकिन आपको मूल रूप से पूरे मेटाडेटा सिस्टम को समझना होगा कि कैसे Type और मित्र आंतरिक रूप से काम करते हैं ...

+0

धन्यवाद यह स्थान पर है। जैसा कि आपने कहा है GetTypeFromHandle भी बाहरी है लेकिन मैं इस तरह की चीज़ के लिए मोनो को देखने पर विचार कर रहा था, इसलिए यह समय निवेश के लायक हो सकता है। –

संबंधित मुद्दे