当我构建我的.NET应用程序时,程序集包含什么? CIL? 第二个问题,当在不同的.NET语言中做同样的事情时,CIL在相似性方面是否完全相同或完全相同? 感谢
答案 0 :(得分:6)
"" = Nothing
),某些字符串操作,我不记得还有什么。
答案 1 :(得分:2)
你不能保证VB.Net和C#会归结为相同的IL,但如果你编写了功能相同的例程,IL可以产生相同的结果。
答案 2 :(得分:1)
对于许多方法,编译结果(CIL)将是相同的。
然而,在任何一种语言中都有不同解决方案的构造,或者只是不可能。这永远不会产生相同的指示。
答案 3 :(得分:1)
所有基于.net的语言都编译为ILCode(Intermidiate Language)。如果完成相同的结果ILCode将是相同的,因此,例如,对象上的成员访问将始终是相同的。但是,有些功能在其他语言中没有表示,因此ILCode可能无法用该语言表示,因为它使用了该语言中没有的功能。尽管如此,仍然可以参考装配。
答案 4 :(得分:1)
如果代码以相同的方式工作,那么除非编译器错误,否则可以保证生成的IL将以相同的方式工作。
但是,编译器如何实现代码,而VB和C#使用不同的编译器,并不能保证他们将代码实现为相同的IL。
答案 5 :(得分:1)
1)是的,所有.NET应用程序都编译为 CIL
2),不,IL在不同的.NET语言之间看起来并不总是一模一样。对于类似的源代码构造,它们可能类似,但是每种语言在实现方式方面都有细微差别,因此IL最终看起来略有不同(但通常表现得相对类似)。