public class MaClasse<T> where T : struct
{
public MaClasse()
}
public IList<T> MyProperty { get; set; }
static void Main(string[] args)
var l = new MaClasse<int> { MyProperty = new List<int> { 1, 2, 3, 4 } };
Console.WriteLine(l.MyProperty[0].ToString());
Console.ReadLine();
.method private hidebysig static void Main(string[] args) cil managed
.entrypoint
.maxstack 3
.locals init ([0] class ConsoleApplication1.Program/MaClasse`1<int32> l,
[1] class ConsoleApplication1.Program/MaClasse`1<int32> '<>g__initLocal1', //Variable locale inutile
[2] class [mscorlib]System.Collections.Generic.List`1<int32> '<>g__initLocal2', //Variable locale utile
[3] int32 CS$0$0000)
IL_0000: newobj instance void class ConsoleApplication1.Program/MaClasse`1<int32>::.ctor()
IL_0005: stloc.1 //Déchargement de la pile dans la variable locale non utile
IL_0006: ldloc.1
IL_0007: newobj instance void class [mscorlib]System.Collections.Generic.List`1<int32>::.ctor()
IL_000c: stloc.2 //Déchargement de la pile vers la variable locale indispensable générée par le compilateur c#
IL_000d: ldloc.2
IL_000e: ldc.i4.1
IL_000f: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<int32>::Add(!0)
IL_0014: ldloc.2
IL_0015: ldc.i4.2
IL_0016: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<int32>::Add(!0)
IL_001b: ldloc.2
IL_001c: ldc.i4.3
IL_001d: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<int32>::Add(!0)
IL_0022: ldloc.2
IL_0023: ldc.i4.4
IL_0024: callvirt instance void class [mscorlib]System.Collections.Generic.List`1<int32>::Add(!0)
IL_0029: ldloc.2
IL_002a: callvirt instance void class ConsoleApplication1.Program/MaClasse`1<int32>::
set_MyProperty(class [mscorlib]System.Collections.Generic.IList`1<!0>)
IL_002f: ldloc.1 // Instruction inutile si on avait déchargé au début dans la variable locale désignée
IL_0030: stloc.0 // Instruction inutile
IL_0031: ldloc.0
IL_0032: callvirt instance class [mscorlib]System.Collections.Generic.IList`1<!0>
class ConsoleApplication1.Program/MaClasse`1<int32>::get_MyProperty()
IL_0037: ldc.i4.0
IL_0038: callvirt instance !0 class [mscorlib]System.Collections.Generic.IList`1<int32>::get_Item(int32)
IL_003d: stloc.3
IL_003e: ldloca.s CS$0$0000
IL_0040: call instance string [mscorlib]System.Int32::ToString()
IL_0045: call void [mscorlib]System.Console::WriteLine(string)
IL_004a: call string [mscorlib]System.Console::ReadLine()
IL_004f: pop
IL_0050: ret
private static void Main(string[] args)
MaClasse<int> <>g__initLocal2 = new MaClasse<int>();
List<int> <>g__initLocal3 = new List<int>();
<>g__initLocal3.Add(1);
<>g__initLocal3.Add(2);
<>g__initLocal3.Add(3);
<>g__initLocal3.Add(4);
<>g__initLocal2.MyProperty = <>g__initLocal3;
MaClasse<int> l = <>g__initLocal2;