1
6
语言差异依然存在。将语言编译为汇编代码或MSIL并没有真正的区别,只是MSIL的抽象级别可能高于汇编的抽象级别。 然而.NET的最大优势,这可能引发了一个问题,即您可以在一个用语言2编写的库中使用语言1的对象代码,该库由一个用语言3编写的应用程序链接。 很久以前,在没有电力和汽车移动之前,你不能简单地在Pascal或Delphi应用程序中使用C生成的.obj文件(反之亦然),而不将它们显式包装在一个dll中(并注意调用方法、参数序列和参数兼容性),或者调用另一个可执行文件。 |
2
7
区别仍然存在。例如,vb.net目前以比c(不包括c 4.0)更好的方式支持IDispatch后期绑定,vb.net具有与代码内联的XML文本,与其他.NET语言相比,这使得它成为操作XML的方便工具。C++往往不太适合.NET,即使使用C++/CLI变异体,但它对于本地编程(一如既往)很好,并且在托管代码和非托管代码之间提供互操作层。 每种语言在语法上都有细微差别,使表达某些概念更容易。即使他们都煮成了白葡萄酒,也和以前一样,当他们都煮成了白葡萄酒。您选择的语言的语法最能支持您尝试执行的任务,而不管它编译到哪个平台。 |
3
3
不,它没有框架的功能和语言功能不一样。可以说,has.net删除了语言之间的区别,就像saying删除了汇编代码删除了语言之间的区别一样。 这些语言仍然具有不同的特性,某些语言的语法在解决某些问题方面更为出色,否则整个.NET框架将在一种语言上同构。 |
4
2
如果有的话,我想可能有 加高 准确地说,语言之间的区别 因为 它们是可互操作的。现在的重点是 语言 . 相同的基本服务和基类是可用的,这意味着您可以根据 语言 提供,而不是框架与语言合作提供的内容。 例如,对于使用后期绑定的COM,我可能(勉强地)选择VB(或者等待C 4.0)。对于某些特定的财务/模拟工作,我可能会认真考虑f。对于常规业务编程,我的选择是C。 但是你可以根据 语言 适用于不同的区块,并将不同的DLL以不同的语言将完成的应用程序编织在一起。以前你可能不得不与部分代码作斗争,因为你 有 使用语言 X 使其与其余代码进行互操作。 |
5
0
我认为这真的取决于提问的背景。
假设您正在开发一个供客户使用的库。您将此程序集标记为
当考虑符合CLS的库时,.NET消除了语言之间的区别。每一种.NET语言都必须符合CLS,因此保证您平等地支持每一种.NET语言。 现在,假设您正在用vb.net编写库,并决定使用可选参数而不是方法重载。在这种情况下,.NET突出显示了语言之间的区别,因为可选参数不符合CLS(尽管C显然在.NET 4.0中支持它们)。对于使用不支持可选参数的语言的人,您的库可能不可能,或者最好难以使用。每种语言都有一些不符合CLS的特性,当使用这些特性时,可能会使某些.NET语言的用户更难使用库。 所以,我觉得这是个骗人的问题。如果您正在编写符合CLS的代码,那么.NET语言之间只有语法差异。如果不是,那么您可以编写一些.NET语言无法使用的方法。 |
Malvineous · 定义编译时间常数的最佳方法 9 年前 |
Søren Debois · 执行类型单元表达式的习语iff条件为真 10 年前 |
the wolf · 确保矩阵元素长度的“Python”方法 12 年前 |