2012-08-02 21 views
6

मुझे नेट परावर्तक का उपयोग करके इन प्रकारों के बीच संबंध नहीं मिल रहे हैं। कोई उपाय?कहां जानना/जांचना: Value32 टाइप से Int32 विरासत, ValueType ऑब्जेक्ट से विरासत में मिलता है?

+0

अच्छा सवाल है, मैं भी दिलचस्प हूं लेकिन मुझे लगता है कि आप इसे परावर्तक कारण में नहीं देख सकते हैं केवल स्क्रेक्ट या एनम जैसे कीवर्ड कंपाइलर के लिए मान के रूप में परिभाषित करते हैं। –

+1

@ डेनिस आप इसे आईएल, सी # और पेड़ में देख सकते हैं ... –

+0

वीएस में ऑब्जेक्ट ब्राउज़र आपको भी वही जानकारी दे सकता है ... –

उत्तर

8

जब से तुम कहते हैं कि "नेट परावर्तक का उपयोग कर":

enter image description here

आप चाहते थे तो प्रतिबिंब:

Type type = typeof (int); 
while(type != null) 
{ 
    Console.WriteLine(type.FullName); 
    type = type.BaseType; 
} 

जो दिखाता है:

System.Int32 
System.ValueType 
System.Object 

और क्या आपका मतलब है अगर आईएल:

.class public sequential ansi serializable sealed beforefieldinit Int32 
    extends System.ValueType 

और:

.class public abstract auto ansi serializable beforefieldinit ValueType 
    extends System.Object 

(परावर्तक में, इस किस्म के नोड का चयन करें, और दृश्य के रूप में आईएल चुनें)

आप सी # देखने के लिए, तो इसका मतलब यह है:

public struct Int32 ... 

पर्याप्त है; struct कीवर्ड का अर्थ है: ValueType से विरासत (हालांकि सामान्य सी # class रास्ते में काफी नहीं है)। ValueType एक नियमित रूप से वर्ग रहता है, और है:

public abstract class ValueType ... 

और हमेशा की तरह, एक class जो एक आधार प्रकार निर्दिष्ट नहीं है का मतलब है: object से विरासत।

+0

मेरा मतलब सी # व्यू है। हर समय अब ​​स्पष्ट है। महान दृष्टिकोण देने के लिए धन्यवाद मार्क। विभिन्न संभावित तरीकों को समझाने के लिए – user1033098

+0

+1। – Adil