C#和VB.NET之间最重要的功能区别是什么?

Lar*_*nal 33 c# vb.net comparison

当然,一般语法有区别,但存在哪些其他批判性区别?有一些差异,对吧?

Luk*_*uke 32

链接的比较非常彻底,但就主要差异我会注意到以下几点:

  • C#有匿名方法 VB现在也有
  • C#有yield关键字(迭代器块) VB11添加了这个
  • VB支持隐式后期绑定(C#现在通过动态关键字显式后期绑定)
  • VB支持XML文字
  • VB不区分大小写
  • VB的更多开箱即用的代码片段
  • C# Visual Studio 2015的更多开箱即用的重构工具现在为VB和C#提供了相同的重构工具.

一般而言,MS关注的内容各不相同,因为这两种语言针对的是非常不同的受众.此博客文章对目标受众进行了很好的总结.确定您所在的受众群体可能是一个好主意,因为它将决定您从Microsoft获得哪种工具.

  • VB.Net现在有[`Yield`](http://msdn.microsoft.com/en-us/library/vstudio/hh156729.aspx)关键字.另请参见http://stackoverflow.com/questions/97381/yield-in-vb-net (3认同)
  • VB具有匿名函数,只要它们返回一个值即可.没有匿名方法这样的东西.根据定义,方法是隐式地获取对象引用的命名函数. (2认同)
  • VB没有C#支持的yield关键字 (2认同)

Rob*_*len 9

自.Net 2.0发布以来,这个主题已经有了很多时间.有关可读摘要,请参阅此Wikipedia文章.


Sei*_*bar 5

这可以被认为是语法,但VB.NET是案件敏感,而C#是区分大小写.

  • 哦,这是一个很好的功能.继续,尝试调试一堆代码,其中你有intcounter和intCounter是两个不同的变量.两者之间应该没有区别.从计算能力远远昂贵的日子开始,区分大小写(并解析一条线"A"<>"a"比确定它们真的相同). (4认同)