日期:2014-05-20  浏览次数:20968 次

VB和C#之间,你为什么选择了C#?
很多时候我也在想为什么要学习C#。VB其实都已经满足我的要求了。所以想知道各位大侠们的答案。

============================
您为什么选择C#,而不用VB呢?
=============================

------解决方案--------------------
C# 语法 更合乎 我的 思维 习惯 。。。感觉 vb 生硬 。
------解决方案--------------------
够用就好,呵呵,没什么的

我有时候也喜欢用VB开发些小东东,开发大系统相对来说还是用.NET好,容易维护
------解决方案--------------------
VB code

fuction
end fuction
if 
end if
for
next

------解决方案--------------------
接触.net的时候我已经脱离vb6快半年了...
------解决方案--------------------
引用楼主 yongyue 的帖子:
很多时候我也在想为什么要学习C#。VB其实都已经满足我的要求了。所以想知道各位大侠们的答案。

============================
您为什么选择C#,而不用VB呢?
=============================

------解决方案--------------------
好学吧
------解决方案--------------------
其实最开始是学vb入门的,后来大学开了C语言,就一直跟着C系的语言走了。
所以后来学了C#。
------解决方案--------------------
探讨
说来说去还是delphi.net太不争气,borland死于一帮蠢猪之手

------解决方案--------------------
探讨
引用:
说来说去还是delphi.net太不争气,borland死于一帮蠢猪之手



win32 下 , delphi 强的不得了.

------解决方案--------------------
探讨
C#是微软为.NET量身打造的语言,也是微软拿来抗衡JAVA的主推技术,就这么简单!
VB嘛,注定要被淘汰的产品。

------解决方案--------------------
学校学的,没什么选择权~!
------解决方案--------------------
其实很简单...随便从MSDN里找了个示例对比一下...

C#简洁明了,少打好多字,时间就是金钱...代码可读性也非常好,而且符合C系语法习惯...
VB.NET code
    Public Shared Sub PrintValues(myList As IEnumerable, myWidth As Integer)
        Dim i As Integer = myWidth
        Dim obj As [Object]
        For Each obj In  myList
            If i <= 0 Then
                i = myWidth
                Console.WriteLine()
            End If
            i -= 1
            Console.Write("{0,8}", obj)
        Next obj
        Console.WriteLine()
    End Sub 'PrintValues

------解决方案--------------------
好多人都说是喜欢C#简洁明了,少打好多字,节约时间

其实vb.net的代码可读性更好,看见end if就知道和if匹配,如果看到一个}要一眼看出和那个匹配还是要费点眼神的。
少打好多字也不太成立,现在的ide明显vb.net比c#的代码提示要好,一般只要打第一个字符,都可以补全了,而且比如定义变量,c#要先写好类型的第一个字符,很多情况下,不知道第一个字符是什么,还的打快捷键才能选择,vb.net里定义变量,非常顺手的as一下,全部类型都出来了,况且{}需要小拇指去打,打不快的,vb里,如果输入一个do 自动补全do while 和loop,我相信肯定是打do比打{要快点多吧。

其实很多c#的程序员从来就没有正眼看过vb.net,根本就不了解vb,更没有使用过vb,何来比较一说,在他们眼里vb从来就是一个玩具,殊不知vb早已进化为和c#平起平坐的net语言重要的成员,可还有人说VB是面向过程的,唉。

新版的C#4,加了一些可选参数等等功能,可这些vb早就有了,有些lambda 表达式虽然vb没有,不过匿名委托还是一样可以用的,只是看着多几个字符而已,功能并不缺。
------解决方案--------------------
我们来看看楼上举的例子吧

Public Shared Sub PrintValues(myList As IEnumerable, myWidth As Integer)
public static void PrintValues(IEnumerable myList, int myWidth ) {

sub比void短,还少一个{, vb的变量需要一个As,不过这样就不用考虑类型名称的首字符和打快捷键,Integer比int长,不过输入int按tab已经可以补全

Dim i As Integer = myWidth
int i = myWidth;
少一个;号,同样的原因,类型定义后置,看着字符多,其实更方便。

Dim obj As [Object]
For Each obj In myList

foreach ( Object obj in myList ) {
这里vb也是可以合并成一句的,而且不应该有Object加[]的情况,不知道为什么加上?