WEB开发网
开发学院软件开发C语言 《C# to IL》第二章 IL基础 阅读

《C# to IL》第二章 IL基础

 2009-06-01 08:31:09 来源:WEB开发网   
核心提示: a.il.assembly mukhi {}.class private auto ansi zzz extends System.Object{.method public hidebysig static void vijay() il managed{.entrypointldstr

a.il

.assembly mukhi {}
.class private auto ansi zzz extends System.Object
{
.method public hidebysig static void vijay() il managed
{
.entrypoint
ldstr "hi"
call void System.Console::WriteLine(class System.String)
newobj instance void zzz::.ctor()
pop
ret
}
.method private hidebysig specialname rtspecialname instance void .ctor() il managed
{
ldarg.0
call instance void [mscorlib]System.Object::.ctor()
ldstr "bye"
call void [mscorlib]System.Console::WriteLine(class System.String)
ret
}
.method private hidebysig specialname rtspecialname static void .cctor() il managed
{
ldstr "byes"
call void [mscorlib]System.Console::WriteLine(class System.String)
ret
}
}

Output

byes

hi

bye

尽管实例构造函数只在new之后被调用,但静态构造函数总是会首先被调用。IL会强制这个执行的顺序。对基类构造函数的调用不是必须的。因此,为了节省本书的篇幅,我们不会展示程序的所有代码。

在某些情况中,如果我们不包括构造函数的代码,那么程序就不会工作。只有在这些情况中,构造函数的代码才会被包括进来。静态构造函数不会调用基类的构造函数,this也不会被传递到静态函数中。

a.cs

    class zzz
    {
        public static void Main()
        {
            int i = 6;
            long j = 7;
        }
    }

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:to IL 第二章

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