我是一个VB的疯狂拥护者,现在想写一篇VB和C#对比的文档,以体现VB的好处,所以想请C#的高手提供一些仅能由C#实现的程序,以与VB功能作一比较,先行谢过!!!!!!!

解决方案 »

  1.   

    Complete Comparison for VB.NET and C#
    http://www.codeproject.com/dotnet/vbnet_c__difference.aspsome of the things in the above article might not be true in .NET 2.0 any more
      

  2.   

    学习了。看了那贴才知道vb.net还有catch when这么写的。
      

  3.   

    看到个c#调用api的,说是 use Platform Invoke
    难道可以不用声明?楼下的解释以下好不好
      

  4.   

    各位大侠注意了,我是想知道有什么程序功能上的C#可以实现,而VB实现不了,但并不想比较语法样式上的差异
      

  5.   

    C#中调用指针的程序片段(虽然是不安全调用),VB.NET中能实现吗?
      

  6.   

    there was a question about how to implement public event EventHandler MyClick
    {
     add
     {
      Debug.WriteLine("add called");
      Click += value;
     }
       
     remove
     {
      Debug.WriteLine("remove called");
      Click -= value;
     }
    }in VB.NET, seehttp://www.informit.com/articles/article.asp?p=31535&rl=1
      

  7.   

    C#中的运算符重载以下这句public static Complex operator +(Complex c1, Complex c2),如何在vb.net中实现?// complex.cs
    using System;public struct Complex 
    {
       public int real;
       public int imaginary;   public Complex(int real, int imaginary) 
       {
          this.real = real;
          this.imaginary = imaginary;
       }   // Declare which operator to overload (+), the types 
       // that can be added (two Complex objects), and the 
       // return type (Complex):
       public static Complex operator +(Complex c1, Complex c2) 
       {
          return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);
       }
       // Override the ToString method to display an complex number in the suitable format:
       public override string ToString()
       {
          return(String.Format("{0} + {1}i", real, imaginary));
       }   public static void Main() 
       {
          Complex num1 = new Complex(2,3);
          Complex num2 = new Complex(3,4);      // Add two Complex objects (num1 and num2) through the
          // overloaded plus operator:
          Complex sum = num1 + num2;     // Print the numbers and the sum using the overriden ToString method:
          Console.WriteLine("First complex number:  {0}",num1);
          Console.WriteLine("Second complex number: {0}",num2);
          Console.WriteLine("The sum of the two numbers: {0}",sum);
     
       }
    }
      

  8.   

    这是一个区别,VB的确没有运算符重载的语法,但好象这只是语法差异,并不是功能上的差异啊,运算载重载的功能完全可以以类内提供一个共享函数,并以可选参数数组作为参数的方法实现啊。虽说写起来复杂些,但并不是不可实现的功能,我想知道是否有C#可以实现,但VB实现不了的功能,比如说是否有API或COM是只能由C#调用而VB调用不了的,我认为这才是功能上的差异。请各位大侠给些这方面的例子学习一下,谢谢
      

  9.   

    如果是VB.net和C#比,我想C#能实现的,VB基本能实现,要知道.net有一个特点是语言无关性。如果和VB6比,那就不同了!VB6不是严格的面向对象的语言,不真正支持多线程。
      

  10.   

    最重要的区别:
    C#可以访问.net framework所提供的基类,且该类库有完整的参考(在MSDN .NET 2003中);
    而VB不可以
      

  11.   

    C#可以访问.net framework所提供的基类,且该类库有完整的参考(在MSDN .NET 2003中);这句话是什么意思,可否解释一下?
      

  12.   

    .net framework基类库,请自行查看Microsoft Visual Studio .NET 2003 文档-参考-类库;
    该类库功能强大且完整,象智能嵌入设备的开发,USB设备的访问,GDI+绘图,尤其涉及到网络的类库都封装的非常好.这样,才为.NET各种语言快速高效的完成各种应用提供了保证.
    可以说,学C#实际意义不大,只是一种工具和手段,实际开发还是靠该类库的掌握.最最重要的一点,该类库全部是中文的.
    这一点vb可就不行了,做为一种语言,其实哪种语言都好,但做开发不一样,不可能各种对象都自己从底层写吧?所以,组件的支持非常重要,VB也不是没有好的组件支持,而是各个组件没有统一的使用规范和习惯,要命的是,帮助非常难找.
    VB也有可能能够访问.net framework基类库,但使用起来绝对不会象C#那样高校和方便
      

  13.   

    Vb.net同样是访问.net framework的,看不出和C#有什么区别!
    其他在.net下,VB.net和C#基本上是同等的.不知 chenlixin007(Aeolus)为什么发表这们的高见呢?
      

  14.   

    比如说自定义运算符就是C#有,vb.net没有的。
      

  15.   

    都是基于.net的,功能上应该没有什么大的区别,只是实现的语法不一样,我喜欢C的简捷,VB语法就象写英文报告,太罗嗦
      

  16.   

    客户指定用C#,这个功能你肯定用VB。NET实现不了,既是做出来了,也算没有实现哦,
      

  17.   

    呵呵,从大伙的回贴看来C#和VB.net 好象功能实现上没有太大区别,多谢支持,这帖多留两天,再多听点意见,到星期二我就结帖给分。
      

  18.   

    基本上差不多了,都要调用CLR,主要差别是语法上的
      

  19.   

    使用unsafe编写指针类型的代码,不知道vb.net是否有,
    unsafe 关键字表示不安全上下文,该上下文是任何涉及指针的操作所必需的。
    可以在类型或成员的声明中使用 unsafe 修饰符。因此,类型或成员的整个正文范围均被视为不安全上下文。例如,以下是用 unsafe 修饰符声明的方法:
    unsafe static void FastCopy ( byte[] src, byte[] dst, int count )
    {
       // unsafe context: can use pointers here
    }
    不安全上下文的范围从参数列表扩展到方法的结尾,因此指针在以下参数列表中也可以使用:
    unsafe static void FastCopy ( byte* ps, byte* pd, int count ) {...}
    还可以使用不安全块从而能够使用该块内的不安全代码。例如:
    unsafe 
    {
       // unsafe context: can use pointers here
    }
    若要编译不安全代码,必须指定 /unsafe 编译器选项。无法通过公共语言运行库验证不安全代码。
    示例
    // cs_unsafe_keyword.cs
    // compile with: /unsafe
    using System;
    class UnsafeTest 
    {
       // unsafe method: takes pointer to int:
       unsafe static void SquarePtrParam (int* p) 
       {
          *p *= *p;
       }
       unsafe public static void Main() 
       {
          int i = 5;
          // unsafe method: uses address-of operator (&)
          SquarePtrParam (&i);
          Console.WriteLine (i);
       }
    }
    输出
    25
      

  20.   

    VB和C#区别之一是不区分大小写,这不就有vb无法实现的内容了?
      

  21.   

    to:lgxysl(我心欲静)
    搂主在问Vb和C#的区别,又不是在问VB.NET和C#的区别。
    个人认为要是VB.NET、C#.NET、C++.NET和J#作比较,意义不大,都是.net framework派生出来的语言,你说他们功能上有多大区别?
    所以说,学.NET,重要的.net framework,不过听说很遗憾的是,听说新一代程序构架要转为什么好像是B什么打头的了。而且,.NET下的语言必须要有.net framework的支持,跟老程序的兼容性一点也不好。
    看来还是老语言有生命力,我现在正在学习VC++(6.0)或者VB(6.0),准备放弃.NET,各位同志,大家在这努力吧。
      

  22.   

    好像vb和c#的区别很大啊!我个人认为C#的功能实现比较强大!
      

  23.   

    以前也用vb不过现在用C#,之后感觉C#比较强!