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

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

 2009-06-03 08:30:41 来源:WEB开发网   
核心提示: a.il.assembly mukhi {}.class private auto ansi zzz extends [mscorlib]System.Object{.method public hidebysig static void vijay() il managed{.entry

a.il

.assembly mukhi {}
.class private auto ansi zzz extends [mscorlib]System.Object
{
.method public hidebysig static void vijay() il managed
{
.entrypoint
ldstr      "hi "nBye"tNo"
call       void [mscorlib]System.Console::WriteLine(class System.String)
ldstr      """"
call       void [mscorlib]System.Console::WriteLine(class System.String)
ldstr      "hi ""nBye""tNo"
call       void [mscorlib]System.Console::WriteLine(class System.String)
ret
}
}

Output

hi

Bye No

"

hi "nBye"tNo

C#处理字符串的能力是从IL中继承而来的。像n这样的转义符会被直接复制。

双斜线\,在显示时,结果是一个单斜线。

如果一个字符串以一个@符号作为开始,在该字符串中的特殊意思就是这个转移符会被忽略,而这个字符串会被逐字显示,正如上面的程序所显示的那样。

如果IL没有对字符串格式提供支持,那么它就会烦心于要处理大多数现代程序语言的所面临的困境。

a.cs

#define vijay
class zzz
{
public static void Main()
{
#if vijay
System.Console.WriteLine("1");
#else
System.Console.WriteLine("2");
#endif
}
}

a.il

.assembly mukhi {}
.class private auto ansi zzz extends [mscorlib]System.Object
{
.method public hidebysig static void vijay() il managed {
.entrypoint
ldstr      "1"
call void [mscorlib]System.Console::WriteLine(class System.String)
ret
ret
}
}

上一页  5 6 7 8 9 10 

Tags:to IL 第四章

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