其实VB的语法结构比C#好. VB的关键字比较多, IDE的支持也做的很好, 其实我觉得VB才是.NET平台最优秀的语言. 不要忘了, 老盖可是 靠BASIC起家

解决方案 »

  1.   

    我以前学VB的.现在用C#.可是我还是觉得..结构看起来,还是VB看得清楚.如果那IDE并没有自动缩进功能的话...给你一个C程序让你看,如果长的话,会死人的..............哈,只是个人观点.
      

  2.   

    ……
    这只能够表示你有偏见。我觉得as/is/in很好啊!as和in能够起到的作用是VB所不能的,名字有点别扭而已,而且只是你觉得别扭不代表我也一定觉得别扭,要不你也起一个大家都不觉的别扭的名字?或者弄个大家都没有异议的语法?(不过要改语法的话,得麻烦你顺便改改编译器)in 又怎么了?好的东西拿来不就挺好的吗?学VB了就觉得没有VB好了?找这么说VB还是学C++和Delphi还有Java的呢!那VB也不见的好到哪里去。不要以为我是C#的人,我用Basic系列比用C系列多三年,有13年多的时间了。我只想说,一个语言是否优美在于你是否用的优美,你是否用的优美在于你是否真正了解他,你是否真正了解他在于你是否不存遍见。说完了,谢谢。
      

  3.   

    sorry,笔误:
    as和in能够起到的作用……更正为as和is……此外,is 好想和 DirectCast 对应,忘了,呵呵。
      

  4.   

    是啊,VB中的With语句,设定对象属性时,只有那么快乐了。
      

  5.   

    其实as语法很好。
    private void button1_Click(object sender, System.EventArgs e)
    {}
      

  6.   

    (sender as Button).Text的写法比
    ((Button)sender).Text打那么多括号要好一些吧。
      

  7.   

    罗卜青菜各有所爱,不管c#或vb,只要写出好的程序就是高手
      

  8.   

    WilliamFire:这两种写法有不同的作用:sender as Button通常用于sender有可能是Button,也有可能是其他的东西,需要分别处理的时候;((Button)sender)通常用于只可能是Button的类型,如果出现其它类型必然是异常现象。但是无论用哪种方式,你这么写都是不安全的代码。如果sender是null那就出问题了,当然,你这里是一个事件,正常来说都应该出现一个sender实例,sender为null绝对是异常。但是这么写是一个不良习惯,正确应该这么写:Button btn;
    btn = sender as Button; // 或者btn = (Button) sender
    if (btn != null)
    {
       btn.Text = "abc";
    }因为如果sender是一个private的全局变量,或者是一个和选中的TreeNode或者ListViewItem相关的变量,那么出现null却可能是一个正常现象。但是你的写法就必然会抛出NullReferenceException,而不能够正确处理。
      

  9.   

    呵呵,可能是看c看得比较多了吧,我觉得在一堆字母里找一个符号比照一个单词容易,
    不过这是个人爱好,我的意思不是再说vb c那个好
    我只是说,既然c#要借用vb的语法,就不要直接搬过来
    至少“本地化”一下吧。
      

  10.   

    to xchunyu(大吊车):
      vb并不完全符合CLS(Common Language Specification),所以不能说vb
    是.net最好的语言
      

  11.   

    to minghao1039(明皓):
        代码写得整齐不整齐,不是靠ide完成的,不然
    写出一个linux岂不是写100行,第一行就没法看了?
      

  12.   

    我觉得C#充分体现了微软的理念,集各中语言+编程环境于的优点于一体,楼主说的foreach语句我非常喜欢,这是借了VB的一个优点,比较一下:
    for(int i=0;i<arrlist.count;i++)
    {
       string s =arrlist[i].ToString();
       if(s……)
       {
       } 
    }
    和foreach(string s in arrlist)
    {
       if(s……)
      {
      } 
    }
    你说哪一种简炼呢?别忘了简炼是我学C的根本原因,如定义一个变量,c中用int i 就可以了,其他语言则比较麻烦,至于其他的,C#保留了原来C的特点,新的语法如果你不喜欢可以不用啊,我倒不认为是蹩脚,肯定有他道理,至于VB,我用过一段时间就抛弃了,语法太罗索,我对C#不满的地方是调用API函数不如VC,VC中和内部函数一样使用,而C#中相当麻烦.
      

  13.   

    我基本用C#,尽管以前一直用VB。唯一一个让我觉得C#不方便的地方-不是大问题-是自动提示,举例说明:
    在VB里,可以写Dim dr As OleDbDataReader,写错的可能性很小。
    在C#中,要写成OleDbDataReader dr,很简洁!然而,因为整个OleDbDataReader要我们自己写出来,而且大小写要正确,比起VB来,写错的可能性较高。
    各位有没有同感?或者有好的方法我不知道?
      

  14.   

    DimVar(.Net中...) 非常同意!我第一次用时也有这样的感觉!
    不过Ctrl+J 好像可以提示出来吧!
      

  15.   

    我现在写代码经常分不清c#和vb.
      

  16.   

    Perrin(梦想):
    Ctrl+J好用!高兴ing!还有什么shortcut讲来听听。
      

  17.   

    alt + →
    写入oledbda(不分大小写)然后按一下上面的组合键试试看,会让人变懒的
      

  18.   

    晕死了,To DimVar:
    你在工具->设置->环境->键盘->Alt-C->“完成”->选中
    然后你就可以添加你自己想要的ShortCut了,这个是一个比Alt-J更好用的东西,如果只有唯一的选择就直接帮你选好了,不会弹出列表,如果有多个可能,就和Alt-J一样。反正我设置的是Ctrl-;(分号),原来应该有一个设置是Ctrl-Space,不过中文输入法和这个冲突,所以一般就没办法用。至少我觉得Ctrl-“分号”非常好用,因为别的手指总要移来移去的,就是小指经常不会被用到,几乎就整天停在分号上面,不需要费力去想移动哪个手指头怎么移,按下去就完了。这个设置我用了两三年了。
      

  19.   

    呵呵,我倒不觉得foreach in 不好用,我觉得很好的
    假如,你自己定义了一个类A,然后你又定义了一个类A的集合类B
    当你得到了B类的对象时,你想取得某条件的A,那么,你的foreach就派上很大的用场了啊
    其它有很多地方都用到的啊
    你自己慢慢的去琢磨
    微软不会那么轻易的把它放进来的
    自有它的道理的
      

  20.   

    我觉得C#就是调用API太罗嗦了!不知新版本中有否更新!!!???
      

  21.   

    Thank you For  sumtec,
    这种写法是在Dev控件中学来的,谢谢您的指教。
    受教了。
      

  22.   

    to  gatr() :呵呵,我的意思不是foreach不好用,她很好用,这个帖子是在讨论语法问题foreach(string s in arrlist)
    {}和foreach(string s, arrlist)
    {}老师说,如果你不知道c#的存在,你认为那一种更像c语言系列?
      

  23.   

    as /is /in 在Delphi中很常见的
    ----------
    毕竟是一个人造出来的
      

  24.   

    C#的is = VB的TypeOf..Is
    C#的as = VB的TryCast
      

  25.   

    不可能只有符号的,那样的语言只有一种,就是J语言,写起来就如同##[?!o12$^24t1这还不如C#好看呢对吧!
      

  26.   

    C#已经设计得很美妙了。至于for的问题,C# 2.0似乎要加上iterator,这就好很多了:)
      

  27.   

    心理捏了一把冷汗,生怕设立不允许出现任何说.net不好的话差点被斩首示众,汗,赶紧结贴了