2011-04-04 41 views
13

我對兩個貌似存在相同的VB.NET功能:CType(args)Convert.ToType(args)有些困惑。我對.NET和VB相當陌生,因此我不太確定其中一個是VB6遺留的還是他們實際上有不同的目的/用途/限制。其中一個更新/更安全嗎?是有理由使用一個,但不是另一個?轉換與CType

乾杯! =)

+2

請停止在問題標題中放置編程語言......這是標籤的用途 – 2011-04-04 21:22:29

+4

不會再次執行此操作。我見過其他人這樣做,認爲這可能是一個好主意。感謝您的反饋。 – Phonon 2011-04-04 21:25:44

回答

10

CType來自VB6時代,在效率方面不是最好的。您應該可以使用Convert.ToXxxx()轉換方法和TryCast()DirectCast()來鑄造而不是CType()

+1

不正確。 'CType'永遠不會在VB6中。我覺得你把這個和CInt,CDbl等混淆了 – 2015-08-11 14:16:35

2

請參閱this page on MSDN。 (轉換函數,CType,DirectCast和System.Convert部分)。

該部分的結論如下:

建議:對於大多數的轉換,用內在的語言 變換關鍵字(包括CTYPE)爲了簡潔和清晰,並 讓編譯器優化當在類型之間轉換時。使用 DirectCast用於將對象轉換爲字符串並在嵌入類型已知(即 爲,不需要強制轉換)時提取對象變量中裝入的值 類型。