[url=]http://msdn.microsoft.com/zh-tw/library/s2dy91zy(v=vs.80).aspx
傳回數值資料型別[/url]
函數名稱可決定其傳回值的資料型別,如下表所示。
函式名稱 | 傳回資料型別 | expression 引數的範圍 | CBool
| Boolean 資料型別 (Visual Basic)
| 任何有效的 Char 或 String 或數值運算式。
| CByte
| Byte 資料型別 (Visual Basic)
| 0 至 255 (不帶正負號);小數部分會四捨五入。1
| CChar
| Char 資料型別 (Visual Basic)
| 任何有效的 Char 或 String 運算式,只會轉換 String 的第一個字元,值可從 0 到 65535 (不帶正負號)。
| CDate
| Date 資料型別 (Visual Basic)
| 日期和時間的任何有效表示
| CDbl
| Double 資料型別 (Visual Basic)
| 負值為 -1.79769313486231570E+308 至
-4.94065645841246544E-324,正值為 4.94065645841246544E-324 至 1.79769313486231570E+308。
| CDec
| Decimal 資料型別 (Visual Basic)
| 零個小數的數字為 +/-79,228,162,514,264,337,593,543,950,335,也就是沒有小數位數的數字。具有 28 個小數位數的數字範圍為 +/-7.9228162514264337593543950335。最小的可能非零值為 0.0000000000000000000000000001 (+/-1E-28)。
| CInt
| Integer 資料型別 (Visual Basic)
| -2,147,483,648 至 2,147,483,647;小數部分會捨入。1
| CLng
| Long 資料型別 (Visual Basic)
| -9,223,372,036,854,775,808 至 9,223,372,036,854,775,807;小數部分會捨入。1
| CObj
| Object 資料型別
| 任何有效的運算式。
| CSByte
| SByte 資料型別 (Visual Basic)
| -128 至 127;小數部分會捨入。1
| CShort
| Short 資料型別 (Visual Basic)
| -32,768 至 32,767;小數部分會捨入。1
| CSng
| 字串資料型別 (Visual Basic)
| 負值為 -3.402823E+38 至 -1.401298E-45;正值為 1.401298E-45 至 3.402823E+38。
| CStr
| String 資料型別 (Visual Basic)
| CStr 的傳回值取決於 expression 引數。請參閱 CStr 函式的傳回值。
| CUInt
| UInteger 資料型別
| 0 至 4,294,967,295 (不帶正負號);小數部分會四捨五入。1
| CULng
| ULong 資料型別 (Visual Basic)
| 0 至 18,446,744,073,709,551,615 (不帶正負號);小數部分會四捨五入。1
| CUShort
| UShort 資料型別 (Visual Basic)
| 0 至 65,535 (不帶正負號);小數部分會四捨五入。1
|
1 可以用特殊的捨去類型來處理小數部分,稱為「四捨六入五成雙」(Banker's Rounding)。如需詳細資訊,請參閱備註。
[url=]
備註[/url]
因此,您應該在 Convert 類別或個別的型別結構或類別上,利用慣用的 .NET Framework 方法 (例如 ToString()) 來使用 Visual Basic 型別轉換函式。Visual Basic 函式的設計目的是為了與 Visual Basic 程式碼進行最佳的互動,也能讓您的原始程式碼更精簡且更容易閱讀。此外,.NET Framework 轉換方法不一定會與 Visual Basic 函式產生相同的結果,例如將 Boolean 轉換成 Integer 時。如需詳細資訊,請參閱資料型別疑難排解。
行為- 強制型轉 (Coercion):一般來說,您可使用資料型別轉換函式來將某運算結果強制轉換為特定資料型別,而不是轉換為預設的資料型別。例如,您可以在一般會發生單精度、雙精度或整數運算情況時,使用 CDec 來強制執行十進位運算。
- 轉換失敗:如果傳遞給函式的 expression 在其轉換的資料型別範圍之外,就會發生 OverflowException。
- 小數部分:當您將非整數值轉換成整數型別時,整數轉換函式 (CByte、CInt、CLng、CSByte、CShort、CUInt、CULng 和 CUShort) 會移除小數部分並將值捨入成最接近的整數。
當小數部分正好為 0.5 時,整數轉換函式會將該數字捨入至最接近的偶數整數。例如,0.5 會捨入成 0,1.5 和 2.5 都會捨入為 2。這個動作有時稱為「四捨六入五成雙」,其目的是補償當您一起加總此類數字時會累積的偏差。
CInt 和 CLng 不同於 Int, Fix 函式 (Visual Basic),它會截斷 (而非捨入) 數字的小數部分。同樣地,Fix 和 Int 也總是會將傳入的相同資料型別數值傳回。 - 日期/時間轉換:使用 IsDate 函式 (Visual Basic) 來判斷是否能將值轉換成日期與時間。CDate 可辨識日期常值和時間常值,但不能辨識數值。若要將 Visual Basic 6.0 Date 值轉換成 Visual Basic 2005 Date 值,可使用 System.DateTime.FromOADate(System.Double) 方法。
- 中性日期/時間值:Date 資料型別 (Visual Basic) 永遠同時包含日期和時間資訊。為了方便進行型別轉換,Visual Basic 將 1/1/0001 (1 年 1 月 1 日) 視為日期的「中性值」(Neutral Value),將 00:00:00 (午夜) 視為時間的中性值。如果您將 Date 值轉換為字串,CStr 不會在產生的字串中包含中性值。例如,如果您將 #January 1, 0001 9:30:00# 轉換為字串,結果會是 "9:30:00 AM";日期資訊會隱藏。不過,原始 Date 值中還是保留日期資訊,您可使用如 DatePart 函式 (Visual Basic) 的函式來復原它。
- 區分文化特性:型別轉換函式包含字串,該字串可根據應用程式的目前文化特性設定來執行轉換。例如,CDate 依據您系統上的地區設定 (Locale) 來辨認日期的格式。您必須依照地區設定的正確順序提供日期、月份和年份,否則可能無法正確解譯日期。如果完整日期格式包含星期幾的字串,例如 "Wednesday",則會無法辨識它。
如果您需要在值的字串表示法之間轉換,且使用的格式不是您地區設定所指定的格式,則無法使用 Visual Basic 型別轉換函式。若要這麼做,請使用該實值型別的 ToString(IFormatProvider) 和 Parse(String, IFormatProvider) 方法。例如,將字串轉換成 Double 時使用 System.Double.Parse(System.String,System.IFormatProvider),將型別 Double 的值轉換成字串時則使用 System.Double.ToString(System.IFormatProvider)。
CType 函式CType 函式會利用第二個引數 typename,將 expression 強制型轉為 typename,其中的 typename 可為任何資料型別、結構、類別,或可有效轉換的介面。
如需 CType 與其他型別轉換關鍵字的比較,請參閱 DirectCast 和 TryCast。
範例格式不好調整
要看範例起到原連結
------------------------------------------------------------------------------
一個稱之為值型別,另一個稱之為參照型別,像integer,double這種基本型別稱之為值型別
而我們用類別所建立的稱之為參照型別,利如 WindowsForm中的各種控製項都是參照型別
值得一提的是 string 實際上是參照型別,但基於習慣,ms使用一些動作,讓他的寫作語法看起來和值型別一樣
而一般參照型別之間的轉換是用 directcast 函數來轉換,就像以下這樣
Option Strict On
Option Explicit On
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
DirectCast(sender, Button).Text = "轉換成功"
End Sub
End Class |