Dot-Net

.Net 解析與轉換

  • December 16, 2015

在 .Net 中,您可以使用<datatype>.parse或將字元串值讀入另一種數據類型Convert.To<DataType>

我不熟悉 parse 與 convert 的基礎知識,所以當被問及哪個更好/更快/更合適時,我總是不知所措。

那麼 - 在哪種情況下哪種方式最好?

這些Convert.ToXXX()方法適用於可能是正確或相似類型的對象,而.Parse()專門.TryParse()用於字元串:

//o is actually a boxed int
object o = 12345;

//unboxes it
int castVal = (int) 12345;

//o is a boxed enum
object o = MyEnum.ValueA;

//this will get the underlying int of ValueA
int convVal = Convert.ToInt32( o );

//now we have a string
string s = "12345";

//this will throw an exception if s can't be parsed
int parseVal = int.Parse( s );

//alternatively:
int tryVal;
if( int.TryParse( s, out tryVal ) ) {
   //do something with tryVal 
}

如果您使用優化標誌進行編譯,TryParse 會非常快 - 這是從字元串中獲取數字的最佳方式。但是,如果您有一個可能是 int 或可能是字元串的對象,則 Convert.ToInt32 會更快。

引用自:https://stackoverflow.com/questions/18465