WEB开发网
开发学院软件开发C语言 《C# to IL》第四章 关键字和操作符(上) 阅读

《C# to IL》第四章 关键字和操作符(上)

 2009-06-03 08:30:41 来源:WEB开发网   
核心提示: 如果在源代码中不存在构造函数,那么就会生成一个默认的无参构造函数,《C# to IL》第四章 关键字和操作符(上)(2),如果存在构造函数,那么这个无参构造函数就会从代码中被排除,从而IL输出只显示了一个命名空间,IL中的.namespace指令在概念上类似于C#中的namespace关键

如果在源代码中不存在构造函数,那么就会生成一个默认的无参构造函数。如果存在构造函数,那么这个无参构造函数就会从代码中被排除。

基类的无参构造函数总是会被调用,并且会被首先调用。上面的IL代码证明了这一事实。

a.cs

namespace vijay
{
namespace mukhi
{
class zzz
{
 public static void Main()
{
}
}
}
}

a.il

.assembly mukhi {}
.namespace vijay.mukhi
{
.class private auto ansi zzz extends [mscorlib]System.Object
{
.method public hidebysig static void vijay() il managed
{
.entrypoint
ret
}
}
}

我们可能会在一个命名空间中编写另一个命名空间,但是编译器会将它们全都转换为IL文件的一个命名空间中。从而,C#文件中的这两个命名空间vijay和mukhi都会被合并到IL文件的一个单独的命名空间vijay.mukhi中。

a.il

.assembly mukhi {}
.namespace vijay
{
.namespace mukhi
{
.class private auto ansi zzz extends [mscorlib]System.Object
{
.method public hidebysig static void vijay() il managed
{
.entrypoint
ret
}
}
}
}

在C#中,一个命名空间可以出现在另一个命名空间中,但是C#编译器更喜欢只使用一个单独的命名空间,从而IL输出只显示了一个命名空间。IL中的.namespace指令在概念上类似于C#中的namespace关键字。命名空间的观点起源于IL而不是C#这样的程序语言。

上一页  1 2 3 4 5 6 7  下一页

Tags:to IL 第四章

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接