2010-11-08 63 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()是你的朋友,但我不明白你想要什么,因为所有有效的整数都是有效的小数。