I cannot find the relationships between these types using .Net reflector. Any idea?
While value types are stored generally in the stack, reference types are stored in the managed heap. A value type derives from System. ValueType and contains the data inside its own memory allocation. In other words, variables or objects or value types have their own copy of the data.
Int32 is an immutable value type that represents signed integers with values that range from negative 2,147,483,648 (which is represented by the Int32. MinValue constant) through positive 2,147,483,647 (which is represented by the Int32. MaxValue constant. .
In C#, classes are not value types.
Since you say "using .Net reflector":
If you wanted reflection:
Type type = typeof (int);
while(type != null)
{
Console.WriteLine(type.FullName);
type = type.BaseType;
}
which shows:
System.Int32
System.ValueType
System.Object
and if you mean the IL:
.class public sequential ansi serializable sealed beforefieldinit Int32
extends System.ValueType
and:
.class public abstract auto ansi serializable beforefieldinit ValueType
extends System.Object
(in reflector, select the type's node, and select IL as the view)
If you mean the C# view, then:
public struct Int32 ...
is enough; the struct
keyword means: inherits from ValueType
(although not quite in the usual C# class
way). ValueType
remains a regular class, and has:
public abstract class ValueType ...
and as usual, a class
which doesn't specify a base-type means: inherits from object
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With