2009-08-30 50 views
2

鑄造&在C#2008中轉換有什麼區別?Cast and Convert

+0

這個問題是非常非常模糊。在哪種情況下?你在談論轉換運營商嗎? – nawfal 2013-11-29 12:01:50

+0

可能重複[is-casting-the-same-thing-as-converting](http://stackoverflow.com/questions/143997/is-casting-the-same-thing-as-converting) – nawfal 2014-07-12 16:12:37

回答

3

演員可以讓你對某些數據類型的安全轉換,如。雙> INT

double a = 3.5; 
int b = (int) a; //fraction will be truncated 

這裏投走的是3.5的二進制表示和將其放入整數表示。因爲整數沒有分數,所以它被丟棄並且被允許。以這種方式將字符串轉換爲整數不是那麼簡單並且不被編譯器允許。

轉換更智能,並將更多數據類型從一個轉換爲另一個,例如。字符串 - >布爾

string myString = "true"; 
bool myBool = Convert.ToBoolean(myString); 

Also see this stackoverflow discussion on this topic.

-1

演員一般較慢的,並且可以做隱式的,明確的converion運營商

+4

我會有興趣知道爲什麼你聲稱演員速度較慢?看看Convert.ToInt32(double值)的實現。它最終在內部進行演員陣容和其他操作。 – 2009-08-30 04:47:45

0

一個區別是轉換方法,允許特定的格式(即的IFormatProvider)