2010-11-08 37 views
0

我可能有以下幾種類型:
數與小數:100.90
號(INT32):32
字符串:「」層疊解析

我要的是它試圖解析爲一個十進制數的函數如果失敗,則嘗試解析爲int,如果失敗,則返回一個字符串。 在C#中有以下功能的任何類型的功能表示讚賞。

+1

這個函數最終會返回什麼? – 2010-11-08 09:08:31

+0

格式化的貨幣字符串,如果sucessully解析爲int或十進制。如果不是那麼只是字符串 – chugh97 2010-11-08 09:28:14

回答

2
public static object cascadeParse(string obj) 
{ 
    decimal decRet; 
    if (!decimal.TryParse(obj, out decRet)) 
    { 
     int intRet; 
     if (!int.TryParse(obj, out intRet)) 
     { 
      return obj; 
     } 
     else 
     { 
      return intRet; 
     } 
    } 
    else 
    { 
     return decRet; 
    } 
} 

但是此方法將總是返回decimal過去了的東西作爲intint S可總是被解析爲decimal可以分析。您可能需要重新訂購TryParse,才能將int放在第一位。

1

TryParse()是你的朋友,但我不明白你想要什麼,因爲所有有效的整數都是有效的小數。