在功能上,两个没有太大区别,也都有彼此替换的功能,比较C#与http://VB.NET 应该重在比较语法就好了。
在语法上VB要起始要远强于C#;
C#最骄傲的无非就是,代码简洁
可以多行代码写在一行里面
但是这个是VB6时代都有的功能,而很C#人却都不知道而已,例如:
Dim a, b As String : a = 1 : b = "abc"
最最另C#骄傲的是这个 :
string query = @"SELECT first, lastFROM tableWHERE id = 1";
这个其实最新VB是可以直接写的:
Dim cmdText as String = "
SELECT
Field1, Field2, Field3
FROM table
WHERE Field1 = 1"
较老点的VB9增加的可以这样写:
Dim sourceText As String =
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections
Imports Microsoft.Win32
Imports System.Linq
Imports System.Text
Imports Roslyn.Compilers
Imports System.ComponentModel
Imports System.Runtime.CompilerServices
Imports Roslyn.Compilers.VisualBasic
Namespace HelloWorld
Module Program
Sub Main(args As String())
Console.WriteLine("Hello, World!")
End Sub
End Module
End Namespace
当然可以更厉害的是可以这样写:
Dim contact2 =
Patrick Hines
Select >
%>
这些写法足够让C#哭晕在厕所了,因为C#至今没有上这个xml literal的功能。
至于其他C#无非就是嫌VB关键词太长了。。。等等诸如此类,但其实再长的关键词也不用VB全部用手敲写出来,因为VB的VS对VB的自动完成程度要比C#高的多;
以上比较只是简单说明一下问题:VB有很多好功能,但C#没有,且用C#的根本不知道VB有。。。
当然另外一个重点就是题主提到的:
VB低端,幼稚?
这个偏见起始还是来源于VB6的之前的版本,因为当年C++,JAVA是高端的,VB,delphi 是低端的。为啥,因为VB太简单好用了,以至于别人会说VB如同玩具一般;但到了VB7以后依旧如此,尽管VB与c#是那么的一样,但仍然是受到了嘲笑!起始我想问:有C#可以开发的但VB不能开发的应用吗?如果开发一个同样的应用VB比C#的开发效率更高更快这是优点还是缺点呢?当然C#会认为这个是缺点,为啥?因为VB太简单了,以至于一个2年的VBer就可以很快的开发出来几万代码的应用。
可以举个例子来说一下,对于削铅笔,C#er水果刀把铅笔削的又圆又好看用了5分钟,大家都夸C#技术好,厉害!但是VB用铅笔刀来削铅笔,用了不到1分钟削完了,那别人会说VB真幼稚,干的活3岁小孩都能做! 这就是现状,别人觉得VB低端,不是因为有些功能他做不了,而是实现一些功能的太容易了,就如同JAVA阵营嘲笑C#只会拖控件一样。但是问题是拖控件有错吗?如果你想高大尚你可以直接用代码添加呀,甚至你可以不用VS,直接用记事本写呗,然后再用VS编译好了。
所以唠唠叨叨本质就是这些东西,根本不存在VB低端的问题。
事实上我们应该反思一下,我们要给客户削铅笔,是要用水果刀来削,还是用铅笔刀来削?
(当然,用水果刀削的比铅笔刀快的绝世高手除外)