In .net, AIUI int
is just syntactic sugar for System.Int32
, which is a struct
.
csharp> typeof(System.Int32).IsPrimitive
There is an excellent explanation in Dixin's blog article Understanding .NET Primitive Types.
The answer can be found in the generated IL. His following question is actually the answer to your question:
So what is the relationship among int32 (IL), int (C#) and System.Int32 (C#)?
In the IL can be found that the int
inside the struct
is:
.field assembly int32 m_value
So that int32
actually exists outside .NET and is the actual representation of the .NET int
in assembly.