rendered paste bodystruct Vector {
double a;
public Vector (double x)
{
a = x;
}
}
class X {
static void Main ()
{
Vector v = new Vector (1);
M (ref v);
}
static void M (ref Vector a)
{
}
}
This is generated:
.assembly 've'
{
.hash algorithm 0x00008004
.ver 0:0:0:0
}
.module ve.exe // GUID = {EA564477-54F1-4B1E-B3AC-E948F783313C}
.class private sequential ansi sealed beforefieldinit Vector
extends [mscorlib]System.ValueType
{
.field private float64 a
// method line 1
.method public hidebysig specialname rtspecialname
instance default void '.ctor' (float64 x) cil managed
{
// Method begins at RVA 0x20ec
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld float64 Vector::a
IL_0007: ret
} // end of method Vector::.ctor
} // end of class Vector
.class private auto ansi beforefieldinit X
extends [mscorlib]System.Object
{
// method line 2
.method public hidebysig specialname rtspecialname
instance default void '.ctor' () cil managed
{
// Method begins at RVA 0x20f8
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void object::'.ctor'()
IL_0006: ret
} // end of method X::.ctor
// method line 3
.method private static hidebysig
default void Main () cil managed
{
// Method begins at RVA 0x2100
.entrypoint
// Code size 24 (0x18)
.maxstack 4
.locals init (
valuetype Vector V_0)
IL_0000: ldloca.s 0
IL_0002: ldc.r8 1.
IL_000b: call instance void valuetype Vector::'.ctor'(float64)
IL_0010: ldloca.s 0
IL_0012: call void class X::M([out] valuetype Vector&)
IL_0017: ret
} // end of method X::Main
// method line 4
.method private static hidebysig
default void M (valuetype Vector& a) cil managed
{
// Method begins at RVA 0x2124
// Code size 1 (0x1)
.maxstack 8
IL_0000: ret
} // end of method X::M
} // end of class X