c与vb.net的区别 c# vb 区别

C#与VB.net有什么不同呀?都说在.NET里,.NET framework和CLR是应用运行的基础 。那么VB.NET和C#是不是就完全一样,只是语法不同吗?
一、C#
--- 像VB一样简单 , 像C++一样强大的新语
C#是第一流的面向组件的语言
由 Turbo Pascal, Delphi, and Visual J++的首席设计师Anders Hejlsberg 倾心3年设计
所有的语言元素都是真正的对象
开发强壮和可重用的软件
所有的.NET Framework中的基类库(Base Class Library)都由C# 编写
二、VB.NET
--- 完全面向对象的BASIC语言
1.新语言特性
完全面向对象– 继承(Inheritance), 重载(overloading), 共享的成员, 结构化异常处理
强壮的语言 – 严格的类型检查, 变量声明时初始化 , 支持垃圾收集(Garbage collection)
强大 – 支持委托(Delegates), free threading,Variant 数据类型被 Object 代替
2.与VB6一致的语法
三、2者的区别?
1.语法上的差异
例如循环的写法
VB.NET
For I = 1 To 10
‘ for loop
Next I
C#
For (i=1;i11;i++) {
// for loop
}
另外Visual Basic 对大小写不敏感,而C#是大小写敏感的 。
2.C# 具有但 Visual Basic 不具有的特性
指针, 移位操作符, 内嵌的文档(XML)
重载操作符
3.Visual Basic具有但 C# 不具有的特性
更丰富的语法: Events, Try…Catch, Select…Case, 实现 Interface
后期绑定(Late binding), 动态数组, 模块(modules), 可选参数, 参数属性(parameterized properties)
后台编译
C#与VB.net间移植的技巧
按理说,这两种语言没有什么移植的必要,因为他们生成的代码可以完全通用 。但是如果一个工程基本上是VB写成的,却需要少许已经存在的C#过程,用组件并不是一种效率很高的办法 。就算是学习C#或VB,学会他们之间的移植可以双倍的利用已经存在的代码(如好玩的Donkey.net就只有VB版) 。
有人比较过这两种语言,得出的结论是他们很相似 。但即便是这样 , VB初学者看到诸如((Button)sender).Text=“启动”;之类的语法不知道如何移植到VB , 而C#初学者看到Handles Button1.Click等语法也会为移植而感到头痛 。下面就看看他们最难移植的部分:
1、Option语句 。VB的Option语句可以打开或关闭变量声明检查和类型转换检查 。尤其是Option Strict被关闭后,VB变成弱类型语言,很多类型转换都是自动的,移植到C#中会产生无数错误 。因此,如果要将带有Option Strict Off语句的VB程序移植到C#,最好先在VB中将Option Strict打开,然后把所有类型转换出错的地方变成强类型转换,然后再进行移植 。
2、类型转换 。VB提供了很多类型转换函数型运算符 , 如CInt(),CSng(),CStr()等 , 在C#中只要用(int),(float),(String)即可 。然而如果不是标准类型,如下面的C#语句:
((System.Button)sender).Text=“启动”;
就要使用VB的函数型运算符CType来实现 。上面的代码正确的移植方法是:
CType(sender,System.Button).Text=“启动”
千万不要使用某些人推荐的 , 将Option Strict关闭,然后用后期绑定调用sender对象的方法,这根本不符合程序移植不能改变本质的要求 。
3、修饰符和属性标签 。VB和C#的修饰符是完全对等存在的,但是拼写往往不同,给移植带来了很多麻烦,尤其是表示相同意思的关键字从字面理解完全不同的时候 。下面就给出了VB和C#对应的关键字:
VB
C#
VB
C#
Inherits
:
Implements
:
MustInherit
abstract
NotInheritable
sealed
Overridable
virtual
NotOverridable

推荐阅读