C#和VB.NET之间最重要的功能区别是什么?
当然,通用语法有所不同,但是还有哪些其他关键区别呢?有一些区别吧?
解决方案
回答
自.Net 2.0发布以来,该主题已经有很多面子了。请参阅此Wikipedia文章以获取可读的摘要。
回答
这是一个非常全面的参考。
回答
由于我假设我们可以使用google,因此我不希望我们链接到更多站点。
我的答案:根据开发人员的历史选择。更加像JAVA,甚至可能像C ++。
VB.NET对VB程序员来说更容易,但是我想这不再是一个真正的问题,因为没有新的.NET程序员来自旧的VB。
我的观点是,VB比C#更具生产力,在生产力工具(例如intelisense)方面,它始终处于领先地位,我建议vb胜于cto。当然,知道他的人更喜欢不问,而为他选择合适的选择。
回答
链接的比较非常彻底,但就主要区别而言,我会注意以下几点:
- C#有匿名方法VB现在也有匿名方法
- C#在其中添加了yield关键字(迭代器块)VB11
- VB支持隐式后期绑定(C#现在通过dynamic关键字具有显式后期绑定)
- VB支持XML文字
- VB不区分大小写
- VB的更多现成代码段
- <罢工>现在,更多适用于C#Visual Studio 2015的现成重构工具为VB和C#提供了相同的重构工具。
通常,MS每种语言所关注的事物都是不同的,因为这两种语言是针对非常不同的受众的。这篇博客文章对目标受众进行了很好的总结。确定我们所在的受众群体可能是一个好主意,因为它将确定我们将从Microsoft获得哪种工具。
回答
除了语法之外,没有更多的东西了。它们都编译为完全相同的IL,因此我们可以将某些内容编译为VB并将其反映到C#中。
大多数明显的差异是语法糖。例如,VB似乎支持动态类型,但实际上它们与C#一样静态,VB编译器认为它们是动态类型。
与Cit相比,Visual Studio的行为与VB有所不同,但隐藏了许多功能,但增加了后台编译(对于小型项目来说很棒,对于大型项目来说则占用了资源)以及更好的代码片段支持。
随着C#3中越来越多的编译器"神奇",VB.Net确实落后了。 VB现在唯一没有C的是handles
关键字,这是值得商benefit的。
@Tom确实很有用,但是有些过时了VB.Net现在也支持XML文档,并带有''''`标记。
@Luke VB.Net仍然没有匿名方法,但现在支持lambda。
回答
可以将其视为语法,但是VB.NET不区分大小写,而Cis区分大小写。
回答
当达到IL时,它只是全部位。这种不区分大小写只是预编译器通过。
但普遍的共识是,vb更为冗长。
如果我们可以编写cw为什么不省掉眼睛和双手,只写少量的代码来做同样的事情。
回答
尽管C#3上的语法糖确实推动了这一标准的发展,但我必须说VB.Net中的Linq to XML内容看起来相当不错,并且使得处理复杂的深层嵌套XML的容忍度更高。一点点。
回答
一个明显的区别是它们如何处理扩展方法(Vb.Net实际上允许C不能传递扩展方法定义为ref的类型):http://blog.gadodia.net/extension-methods-在vbnet和c /
回答
一个明显的区别是它们如何处理扩展方法(Vb.Net实际上允许C不会传递扩展方法定义为ref的类型):http://blog.gadodia.net/extension-methods-在vbnet和c /
回答
Scott Hanselman最近写了一篇有趣的文章,对比了var和Dim:回到基础:var!= Dim
回答
我认为最大的不同是使用C#编写不安全代码的能力。
回答
尽管VB.NET支持try ... catch类型异常处理,但是它仍然具有类似于VB6的ON ERROR的功能。 ON ERROR可能会被严重滥用,在大多数情况下,try ... catch会更好。但是在处理COM超时操作时,ON ERROR很有用,在该操作中可以捕获,解码错误,最后的"再试一次"很简单。
我们可以使用try ... catch进行相同的操作,但是代码更加混乱。