AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > VFP

从 Visual Basic 6.0 到 Visual Basic.NET&nbsp

51自学网 http://www.51zixue.net

 

 

升级向导

如果将布尔值强制转换为非布尔值,代码将标记有升级警告。例如,以下代码:

Dim MyBoolean As BooleanDim MyInteger As Integer MyInteger = MyBoolean

升级后将变为:

Dim MyBoolean As BooleanDim MyInteger As Short ' UPGRADE_WARNING: Boolean MyBoolean is being converted into a numeric MyInteger = MyBoolean

Empty

Visual

Basic 6.0 变量均初始化为 Empty,当用于数值表达式时,变量将自动转换为零,当用于字符串表达式时,则自动转换为空字符串。

Visual Basic.NET

对象变量均初始化为 Nothing,当用于数值表达式时,变量将自动转换为零,当用于字符串表达式时,将自动转换为空字符串。使用 Nothing 代替特殊的 Empty 值可以降低语言的复杂性,语言协同操作性也更强。

升级向导

Null 和 Null 传播

Visual

Basic 6.0 Null 值为 Variant 的子类型,表示变量不包含有效数据。Null 值通过表达式和函数“传播”。如果表达式的任一部分为 Null,则整个表达式为 Null。将 Null 作为参数传递给大多数函数时,这些函数也将返回 Null。

Visual Basic.NET

不支持 Null 传播。使用 ADO.NET 对数据进行编程的模型用于在检索字段的值之前先检查字段的值是否为 Null。包含 null 的变量将作为 DBNull 类型的对象封送处理至 CLR。

Visual Basic.NET 处理 Null 时更加直接:字符串函数(例如 Left())总是返回字符串,与您的预期一样。

升级向导

Null 值和 IsNull 函数标记有升级警告注释。例如,以下代码:

If x Is Null Then MsgBox "Null"

升级后将变为:

' UPGRADE_WARNING: Use of IsNull() detected If IsDBNull(x) Then MsgBox "Null"

Def<Type>

Visual

Basic 6.0 DefBool、DefByte、DefInt、DefLng、DefCur、DefSng、DefDbl、DefDec、DefDate、DefStr、DefObj 和 DefVar 语句用于在模块级设置变量、参数和过程返回类型(以指定字符开始)的默认数据类型。

Visual Basic.NET

避免使用隐式类型声明,提高了代码的可读性和可靠性。

升级向导

将变量类型的显式声明插入代码。例如,以下代码:

DefStr a-z

Sub MySub

s = "Hello"

End Sub

升级后将变为:

Sub MySub

Dim s As String

s = "Hello"

End Sub

块内的局部变量

Visual

Basic 6.0 从包含声明的行至过程结束的范围内,局部变量均可见。

Visual Basic.NET

Visual Basic.NET 支持变量的块范围。这意味着从包含声明的行开始,至出现声明的块结束,局部变量均可见。例如:

Sub Test(x As Integer)

If x < 0 Then

Dim y As Integer = - x

'...

Else

'...

End If

End Sub

以上示例中的变量 y 仅在声明该变量的块中可用;更确切地说,它仅在其声明至 Else 语句之间可用。如果需要在整个过程中使用变量,则必须在 If/Else/End If 控制结构之外声明该变量。

变量的块范围是许多结构语言共有的功能。过程局部变量允许定义过程内部变量,从而对结构化编程提供支持,与此类似,块级别变量允许定义代码块内部变量,从而对结构化分解提供支持。

 
 

上一篇:返回列表  下一篇:从&nbsp;Visual&nbsp;Basic&nbsp;6.0&nbsp;到&nbsp;Visual&nbsp;Basic.NET&nbsp