浏览器大全:是一个提供流行浏览器教程、在线学习分享的学习平台!

vb.Net编程简介之一(轉)

使用先前绑定
Visual Basic 6.0和Visual Basic.NET都支持对象的延迟绑定,
该方法事先定义一个变量为Object数据类型,然后在运行时将其设定为一个类。然而,在升级过程中,当访问延迟绑定对象的缺省属性时可能会产生错误。例如假设工程中包含Form1,Form1中有一个Label对象,名称为Label1,下面的Visual Basic 6.0代码将Label的标题
设定为"SomeText"

Dim o As Object
Set o = Me.Label1
o.Caption = "SomeText"

在Visual Basic.NET的Windows窗体中,Label控件的Caption属
性被称为Text属性。当你的代码升级后,所有实例中的Caption属性都会转换为Text属性,但是延迟绑定对象是无类型(type-less)的,VB无法检测到对象的类型并做更改,在这种情况下,你需要手工对代码做改动。当你使用先前绑定对象时,对象可以自动升级,如下:

Dim o As Label
Set o = Me.Label1
o.Caption = "SomeText"

所以在程序中你需要将对象定义为适当的对象类型而不是简单的
定义为Object对象类型。

同Visual C++类似。Visual Basic.NET支持函数的重载,例如下
面的一个函数具有两个形态

Environ( Expression As Integer) As String
Environ( Expression As String ) As String

Visual Basic.NET会自动检测该使用那个参数的函数。如果你传
递一个正数值到Environ(),那么正数调用版本会被调用;如果传递一个字符串,String版本会被调用。如果传递Object或者Variant数据类型到一个重载函数将产生运行时错误。如果要想产生正确的结果就需要通过数据类型的强制转换,例如:

Dim a As String
Dim v As Variant
v = "Path"
a = Environ(CStr(v)) '正确

对于延迟绑定的对象使用强制类型转换是一个很好的编程习惯。
这就使得代码可读性更好,同时也可以非常轻松的移植到Visual Basic.NET使用Date存储日期/时间较早版本的VB支持使用Double数据类型来存储和改变时间。
在Visual Basic.NET中,这个特性将不再支持,因为在计算机内部日期并不是以Double方式存储的,例如下面的代码可以在Visual Basic 6.0中运行,但是在Visual Basic.NET中会产生错误。

Dim dbl As Double
Dim dat As Date
dat = Now
dbl = dat'错误,不能将一个Date变量赋予一个Double变量
dbl = DateAdd("d", 1, dbl) '错误,Double变量不能用于日期函

dat = CDate(dbl) '错误 CDate函数不能将Double变量转换到Date

.NET架构提供了ToOADate与FromOADate函数用于在double变量以
及Date变量之间转换。然而这需要在升级后手工修改,所以在存储日期时应该使用Date数据类型。

缺省属性
在Visual Basic 6.0中,许多对象都有缺省属性,缺省属性在代
码中可以省略。例如:

MsgBox Form1.Text1.Text

可以这样编写:

MsgBox Form1.Text1 

缺省属性在代码编译是决定。同样,你也可以在延迟绑定的对象中使
用缺省属性,例如:

Dim obj As Object
Set obj = Form1.Text1
MsgBox obj

对于延迟绑定的对象,缺省属性在程序运行时决定。

Visual Basic.NET不支持缺省属性,当你的工程升级后,
Visual Basic.NET会自动决定缺省属性,但是对于延迟绑定的对象无法自动解决决定缺省属性的问题。在这种情况下,你需要自己来修改代码。更加复杂的是,很多库是通过 _Default属性来实现缺省属性的。_Default象是一个代理,它将调用传递给真正的缺省属性。所以当你的工程升级后,一些属性会被更改为 _Default。代码还是象往常那样工作,只是代码不如原来的实际属性易读。

Dim obj As Object
Set obj = Me.Text1
MsgBox obj '不好的代码,使用缺省属性
MsgBox Me.Text1 '不好的代码,使用缺省属性

use:

Dim obj As Object
Set obj = Me.Text1
MsgBox obj.Text '好的代码,写出了属性
MsgBox Me.Text1.Text '好的代码,写出了属性

虽然缺省属性不被Visual Basic.NET支持,但是带参数的缺省属
性是被支持的,要了解它们之间的区别,下面是范例:

Dim rs As ADODB.Recordset
rs("CompanyName") = "SomeCompany"
rs!CompanyName = "SomeCompany"

实际上等于:

Dim rs As ADODB.Recordset
rs.Fields("CompanyName").Value = "SomeCompany"
rs.Fields!CompanyName.Value = "SomeCompany"

因为Value是Fields的缺省属性对于第二种写法,Visual Basic.NET是支持的;然而第一种情况不被支持,那么正确的用法如下:

Dim rs As ADODB.Recordset
rs("CompanyName").Value = "SomeCompany"
rs!CompanyName.Value = "SomeCompany"

象上面的范例和其它的大多数情况可以在工程升级时解决,但是
你还是要避免在Visual Basic 6.0中在Object和Variant数据类型使用缺省属性。因为升级程序无法发现并解决

相关软件

2345加速浏览器官方版

2345加速浏览器官方版 | 56.2MB

2345加速浏览器官方版

新一代2345加速浏览器采用Chromium和IE双内核,主打极速与安全特性。基于Chromium深度定制,引入网页智能预加载技术,访问网页更快速..

QQ浏览器官方正式版

QQ浏览器官方正式版 | 49.67MB

QQ浏览器官方正式版

QQ浏览器秉承TT浏览器1-4系列方便易用的特点,但技术架构不同,交互和视觉表现也重新设计,采用Chromium内核+IE双内核,让浏览快速稳定...

百度浏览器最新版下载

百度浏览器最新版下载 | 13.3MB

百度浏览器最新版下载

q百度浏览器,是一款简洁轻快、智能懂你的浏览器。依靠百度强大的搜索平台,在满足用户浏览网页的基础上,它整合百度体系业务优势,带给用户更方便的浏览方式功能...

UC浏览器官方正式版

UC浏览器官方正式版 | 44.2MB

UC浏览器官方正式版

UC浏览器(UC Browser)是UC Mobile Limited在2004年8月开发的一款软件,分uc手机浏览器和uc浏览器电脑版。UC浏览器是全球使用量最大的第三方手机浏览器...

猎豹浏览器2022最新版下载

猎豹浏览器2022下载 | 45MB

猎豹浏览器2022最新版下载

猎豹安全浏览器对Chrome的Webkit内核进行了超过100项的技术优化,访问网页速度更快。其具有首创的智能切换引擎,动态选择内核匹配不同网页...

360安全浏览器官方版下载

360安全浏览器下载 | 21.4MB

360安全浏览器官方版下载

360安全浏览器拥有全国最大的恶意网址库,采用恶意网址拦截技术,可自动拦截挂马、欺诈、网银仿冒等恶意网址。独创沙箱技术,在隔离模式即使访问****也不会感染...