国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

vb.Net編程簡介之二(轉(zhuǎn))

2024-07-10 13:02:41
字體:
供稿:網(wǎng)友
對boolean類型數(shù)據(jù)使用and/or/not操作
    and和or關鍵字在visual basic.net和visual basic 6.0中的使
用是不同的,在visual basic 6.0中,and運算既執(zhí)行邏輯and操作也執(zhí)行逐位and操作,取決于操作數(shù)(如果是boolean類型,執(zhí)行邏輯and操作,如果是數(shù)字,執(zhí)行逐位and操作)。在visual basic.net中,and運算只執(zhí)行邏輯and操作。對于逐位操作,在visual basic.net提供了一組操作:bitand, bitor, bitnot以及bitxor 。

下面是演示這些差異的范例程序

dim a as integer
dim b as integer
dim c as boolean
a = 1
b = 2
c = a and b
msgbox ("the answer is " & c)

    當上面的代碼在visual basic 6.0下運行時,結(jié)果是false(執(zhí)行
逐位and操作);然而在visual basic.net下,結(jié)果是true(執(zhí)行邏輯and操作)。
    要確定你的程序在升級后也運行結(jié)果同升級前一樣,visual
basic.net包含了兼容函數(shù)vb6.and, vb6.or以及vb6.not,這些函數(shù)執(zhí)行的結(jié)果同visual basic 6.0下的and/or/not操作的執(zhí)行結(jié)果是一樣的。當代碼升級后,結(jié)果會象下面這樣:

dim a as short
dim b as short
dim c as boolean
a = 1
b = 2
c = vb6.and(a, b)
msgbox ("the answer is " & c)

升級后的代碼會得出false的結(jié)果,同visual basic 6.0下運行一樣

    如果不想你的代碼升級后使用兼容函數(shù),就需要確保你的and/or/not都使用在boolean類型數(shù)據(jù)的操作中,例如,如果上面的代碼更改為下面的方式:

dim a as integer
dim b as integer
dim c as boolean
a = 1
b = 2
c = a <> 0 and b <> 0
msgbox ("the answer is " & c)

當升級后,代碼同原來的幾乎一樣:

dim a as short
dim b as short
dim c as boolean
a = 1
b = 2
c = a <> 0 and b <> 0
msgbox ("the answer is " & c)

    同前面不同的是每一個操作都是在boolean數(shù)據(jù)之間進行的,因
此它們在visual basic 6.0中使用的都是邏輯and操作。所以在升級到visual basic.net后不會發(fā)生改變。這樣做的意義是你可以直接在visual basic.net和visual basic 6.0之間拷貝和粘貼代碼,你的代碼會運行的更快因為使用的是本地的and操作而不是兼容函數(shù)。

    另外一個需要考慮的問題是對于函數(shù)結(jié)果的and/or/not 操作的
問題,例如下面的范例:

dim b as boolean
b = function1() and function2()

    在visual basic 6.0中,function1和function2的結(jié)果都會執(zhí)行
后再將結(jié)果進行and操作。在visual basic.net中,只有當function1的結(jié)果為true時才會計算function2。因為visual basic.net中的and運算執(zhí)行的是邏輯and操作,如果function1結(jié)果為false,and結(jié)果肯定是false,為了加快速度就不再執(zhí)行function2的了。但是如果
function2另有目的,例如用于避免某些錯誤,那么就會出現(xiàn)不可預
知的錯誤,那么上面的代碼升級后就會象下面的樣子:

dim b as boolean
b = vb6.and(function1(), function2())

為了不在升級代碼中出現(xiàn)兼容函數(shù),原來的代碼需要做如下的改動:

dim b as boolean
dim c as boolean
dim d as boolean
c = function1()
d = function2()
b = c and d

    另一個需要注意的是在visual basic.net中,true值將不再是-1
而是1。做這個改變是為了使visual basic.net能集成在 .net語言中。因為有這個改變,你需要再你的visual basic 6.0工程中使用常量true而不是-1來表示真值,使用boolean類型而不是整數(shù)類型變量保存boolean數(shù)據(jù)。下面的代碼說明了visual basic 6.0和visual basic.net
之間的不同:

dim i as integer
i = true
if i = -1 then
    msgbox ("true")
else
    msgbox ("false")
end if
在visual basic 6.0中,結(jié)果為true,而在visual basic.net中結(jié)果
為false。

如果對代碼做如下改動,程序在兩種語言下運行都會顯示true

dim i as boolean
i = true
if i = true then
    msgbox ("true")
else
    msgbox ("false")
end if

通過上面的范例可以看出在程序中需要注意兩點:
1、使用常量true和false來判斷是否而不要使用0和-1
2、使用boolean類型變量儲存boolean數(shù)值而不要使用integer類型變
量如果在你的程序中沒有這么做的話,在升級后你還需要做大量的手工改動
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宣化县| 南雄市| 新野县| 昭通市| 商水县| 胶南市| 鹤庆县| 太康县| 瑞安市| 巴东县| 宾川县| 黑水县| 岫岩| 福贡县| 天等县| 东乡族自治县| 若尔盖县| 布拖县| 永宁县| 鲁甸县| 阿坝| 夹江县| 额济纳旗| 娄底市| 印江| 沽源县| 东丰县| 铜鼓县| 枣阳市| 加查县| 昌黎县| 阳原县| 太谷县| 日土县| 博白县| 图们市| 昌图县| 东莞市| 通州区| 长沙县| 自治县|