信息交流、传播、提炼

nice to meet you

博客园 首页 新随笔 联系 订阅 管理
        因为c#要求变量使用前必须初始化,而init标记的局部变量块又会在执行函数体前清零。不加/unsafe开关时,c#编译器生成可校验的IL代码,所有的局部变量块都有init标记,也就是说所有的局部变量(包括表达式中间结果产生的隐士变量)都被清零两遍。加/unsafe开关后,同Managed C++生成的代码一样,不加init标记。
 
        init标记是CLR安全代码要求的,这个应该是CLR和c#规范冲突的地方,但却和Basic很般配,反而使Basic程序比c#更有效率。
posted on 2007-08-28 23:49  seeyou  阅读(951)  评论(0)    收藏  举报