VB.NET錯(cuò)誤解決方案總結(jié)
雖然VB.NET這款語言的結(jié)構(gòu)清晰,代碼簡介靈活,但是操作性并不是很簡單,在實(shí)際操作中還是會碰到各種各樣的錯(cuò)誤。那么今天我們就會為大家詳細(xì)介紹一下有關(guān)VB.NET錯(cuò)誤的一些解決方案,以幫助大家解決問題。
在做VB.NET開發(fā)時(shí),出現(xiàn)了這么一個(gè)VB.NET錯(cuò)誤:“從字符串“aa”到類型“Double”的轉(zhuǎn)換無效”的錯(cuò)誤。這是個(gè)操作數(shù)據(jù)庫的函數(shù),但數(shù)據(jù)庫沒有Double類型的字段,但是它卻拋出這個(gè)錯(cuò)誤來,真是奇怪。
后來逐行調(diào)試看了程序發(fā)現(xiàn)程序是錯(cuò)在一個(gè)數(shù)字型的變量和一個(gè)字符型的變量的連接上,現(xiàn)簡化如下:
- Dim iTemp As Integer = 3
- Dim strTemp As String = "aa"
- Response.Write(strTemp + iTemp)
這樣邏輯的語句我們在C#里經(jīng)常寫,在C#里書寫如下:
- string strTemp = "aa";
- int iTemp = 3;
- Response.Write(strTemp + iTemp);
在C#里同樣的程序卻不會拋出這個(gè)“從字符串“aa”到類型“Double”的轉(zhuǎn)換無效”的VB.NET錯(cuò)誤。#t#
VB.NET 和C#到底相差在哪里呢?
一個(gè)字符串型的變量和一個(gè)數(shù)值型的變量相加,C#會將數(shù)值型的變量隱式轉(zhuǎn)換成字符型的然后在將字符型的數(shù)據(jù)連接起來,可是同樣的問題VB.NET卻是將一個(gè)字符型的轉(zhuǎn)化成數(shù)值型的,在這個(gè)轉(zhuǎn)化過程中,系統(tǒng)會先將字符型的和數(shù)值型的都向更高精度的數(shù)據(jù)類型(Double)轉(zhuǎn)化。但是整型的數(shù)據(jù)轉(zhuǎn)化成Double的數(shù)據(jù)不會出問題,但是字符型的數(shù)據(jù)轉(zhuǎn)化成Double型的就會出問題了,就會拋出那個(gè)“從字符串“aa”到類型“Double”的轉(zhuǎn)換無效”的VB.NET錯(cuò)誤了。
VB.NET中有連接運(yùn)算符"&"和"+"
+ 加連接符 如果兩個(gè)操作數(shù)為String就把這兩個(gè)操作數(shù)連接成一個(gè)字符串,否則按加號處理。
& 連接符 將操作數(shù)據(jù)強(qiáng)行轉(zhuǎn)換成String再進(jìn)行連接運(yùn)算。