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

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

 2009-06-03 08:30:41 来源:WEB开发网   
核心提示: a.csclass zzz{public static void Main(){System.Console.WriteLine((char)65);}}a.il.assembly mukhi {}.class private auto ansi zzz extends [mscorlib

a.cs

class zzz
{
public static void Main()
{
System.Console.WriteLine((char)65);
}
}

a.il

.assembly mukhi {}
.class private auto ansi zzz extends [mscorlib]System.Object
{
.method public hidebysig static void vijay() il managed
{
.entrypoint
ldc.i4.s   65
call void [mscorlib]System.Console::WriteLine(wchar)
ret
}
}

Output

A

无论我们何时转换一个变量,例如把一个数字值转换为一个字符值,在内部,程序仅调用了带有转换数据类型的函数。转换不能修改原始的变量。实际发生的是,在WriteLine被调用时带有一个wchar,而不是一个int。从而,转换不会导致任何运行期间的负载。

a.cs

class zzz
{
public static void Main()
{
char i = 'a';
System.Console.WriteLine((char)i);
}
}

a.il

.assembly mukhi {}
.class private auto ansi zzz extends [mscorlib]System.Object
{
.method public hidebysig static void vijay() il managed
{
.entrypoint
.locals (wchar V_0)
ldc.i4.s   97
stloc.0
ldloc.0
call void [mscorlib]System.Console::WriteLine(wchar)
ret
}
}

Output

a

C#的字符数据类型是16字节大小。在转换为IL时,它会被转换为wchar。字符a会被转换为ASCII数字97。这个字符会被放在栈上并且变量V_0会被初始化为这个值。之后,程序会在屏幕上显示值a。

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

Tags:to IL 第四章

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