当我构建我的.NET应用程序时,程序集将包含什么内容? CIL? 第二个问题,当在不同的.NET langugaes中做同样的事情时,CIL在相似性方面完全相同还是相同,其工作方式完全相同? 谢谢VB.NET和C#CIL看起来是一样的吗?
5
A
回答
6
不,它们不会一样。
VB.Net在Microsoft.VisualBasic.dll中使用帮助器方法而不是许多IL指令来实现VB语义。
这包括平等("" = Nothing
),某些字符串操作,我不记得还有什么。
2
你不能保证VB.Net和C#将归结为相同的IL,但提供了你写功能相同的例程,IL可以产生相同的结果。
1
对于很多方法,编译结果(CIL)将是相同的。
然而,任何一种语言的结构都有不同的解决方法,或者仅仅是不可能的。这永远不会导致相同的说明。
1
基于.net的所有语言都编译为ILCode(Intermidiate Language)。如果完成相同,得到的ILCode将相同,例如,对象上的成员访问将始终是相同的。但是,有些功能在其他语言中没有表示形式,因此可能无法使用该语言表示ILCode,因为它使用的语言不具备该功能。虽然引用程序集仍然是可能的。
1
如果代码的工作方式相同,那么禁止编译器错误可以保证生成的IL将以相同的方式工作。
然而,编译器是如何实现你的代码的,由于VB和C#使用不同的编译器,所以不能保证它们将你的代码实现为相同的IL。
1
1)是的,所有的.NET应用程序被编译为CIL
2),不,IL不会总是看不同.NET语言之间的完全一样。它们对于类似的源代码构造可能很相似,但是每种语言在实现方式上都有细微差别,所以IL最终看起来略有不同(但通常表现得相当类似)。
相关问题
- 1. C#中的XML intellisense和VB.Net一样吗?
- 2. 这个Rails查询和它看起来一样糟糕吗?
- 3. pt和px中的字体大小总是看起来一样吗?
- 4. C++:Loki StrongPtr对我来说看起来不安全,是这样吗?
- 5. 它看起来像你的C#bug吗?
- 6. 这看起来像Ruby的鸭子打字一样吗?
- 7. 使Visual Studio 2010看起来像Eclipse一样吗?
- 8. CSS在heroku上看起来不一样
- 9. rspec平等匹配失败,对象看起来是一样的
- 10. gnuplot logscale看起来每个基地都是一样的
- 11. 图像看起来像一个Blob是什么样的?
- 12. 如何让ICS和gingerbread中的标签看起来一样?
- 13. MVC3中的Ajax.ActionLink看起来和HTML一样.ActionLink
- 14. Cygwin中的文件和文件夹看起来一样
- 15. 与图像和tableview查看看起来不一样在手机上看起来像它接口构建器
- 16. C#或Visual C#都是一样的吗?
- 17. Primeface Datatable在IE和Firefox中看起来不一样
- 18. 铬,Firefox和Safari页面看起来不一样
- 19. Magento前端和后端页面看起来不一样
- 20. 请DIV看起来一样在IE6和IE7/FF
- 21. 颜色在浏览器和photoshop中看起来不一样
- 22. 黑色不透明UIToolbar和UISearchBar看起来不太一样
- 23. UIWebView和Safari内容看起来不一样
- 24. Grid 960在ie8和ff9中看起来不一样
- 25. NSToolbar在豹和雪豹看起来不一样
- 26. 为什么Zend Studio看起来和Eclipse一样?
- 27. 使用CSS使<button>和<a>看起来一样
- 28. iPad:我的书中的HTML在所有的iPad上看起来都一样吗?
- 29. 边框样式:插图看起来应该是什么样子?
- 30. VTK中的样条看起来扭曲
我会克制自己,如果我见过'“” =无“'代码 – msarchet
@msarchet:在VB.Net,他们认为是相等的 – SLaks
我知道它被认为是平等的,它只是看起来错误 – msarchet