您的位置:首页 > 其它

匿名类型(Anonymouse Type)

2007-11-21 09:52 134 查看
概述:

在初始化的时候根据初始化列表自动产生类型的一种机制。

实例代码:
public static void Main()

.method public hidebysig static void Main() cil managed

{

.entrypoint

// Code size 51 (0x33)

.maxstack 4

.locals init ([0] class '<>f__AnonymousType0`3'<int32,int32,string> x)

IL_0000: nop

IL_0001: ldc.i4.2

IL_0002: ldc.i4.4

IL_0003: ldstr "this is a string"

IL_0008: newobj instance void class '<>f__AnonymousType0`3'<int32,int32,string>::.ctor(!0,

!1,

!2)

IL_000d: stloc.0

IL_000e: ldloc.0

IL_000f: callvirt instance !0 class '<>f__AnonymousType0`3'<int32,int32,string>::get_a()

IL_0014: call void [mscorlib]System.Console::WriteLine(int32)

IL_0019: nop

IL_001a: ldloc.0

IL_001b: callvirt instance !1 class '<>f__AnonymousType0`3'<int32,int32,string>::get_b()

IL_0020: call void [mscorlib]System.Console::WriteLine(int32)

IL_0025: nop

IL_0026: ldloc.0

IL_0027: callvirt instance !2 class '<>f__AnonymousType0`3'<int32,int32,string>::get_c()

IL_002c: call void [mscorlib]System.Console::WriteLine(string)

IL_0031: nop

IL_0032: ret

} // end of method NewTest::Main
由此可见,在编译的时候确实已经已经根据列表中的值确定了其类型。

运行结果:

2

4

this is a string
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: