强大 – 支持委托(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
sealed
MustOverride
abstract
Overrides
override
[Overloads]
无
Shadows
new
Shared
static
Public
public
Protected
protected
Friend
internal
Protected Friend
protected internal
Private
private
Static
用别的方法实现
ByVal
无
ByRef
ref
Optional
无
ParamArray
params
无法实现
unsafe
无法实现
fixed
可以看出,VB的关键字比较长 , 而且使用上也比C#更加严格 。从C#向VB移植的时候 , 要分外注意哪些VB有而C#没有的关键字以及在C#拼写相同,在VB中拼写不同的关键字(如MustOverride和MustInherit) 。有些关键字如unsafe , 如果C#使用了他们 , 将无法移植到VB中 。好在这些关键字在商业应用中并不常用 。
推荐阅读
- 电脑没显卡显示器怎么调,电脑没显卡显示器怎么调亮
- 国家gis资格证书,gis 证书
- 游戏战术与战略,手游战略与战术
- 怎么将格式化硬盘恢复,怎么格式化硬盘恢复不了
- java代码动画 java 动画库
- pg数据库搭建,pg数据库集群搭建
- 3060显卡滤镜怎么开,3060显卡教程
- vb.net中正弦30度 vb角度
- css3位置改变,css调整定位的上下位置