在向大家详细介绍C#与VB.NET间移植的技巧之前,首先让大家了解下C#与VB.NET两者的区别,然后全面介绍C#与VB.NET间移植的技巧。
一、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一致的语法
三、C#与VB.NET两者的区别?
1.语法上的差异,例如循环的写法
VB.NET
- For I = 1 To 10
- ‘ for loop
- Next I
C#
- For (i=1;i<11;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#对应的关键字:
【编辑推荐】