0

我可能有以下类型:
带小数的数字:100.90
数字(int32):32
字符串:“”

我想要的是一个函数,它试图解析为十进制,如果它失败,然后尝试解析为 int,如果失败则它是一个字符串。C# 中具有以下功能的任何类型的函数都值得赞赏。

4

2 回答 2

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在传递时返回 a 可以解析为intasint的内容始终可以解析为decimal。您可能需要重新排序TryParses 以将其int放在首位。

于 2010-11-08T09:28:54.610 回答
1

TryParse () 是你的朋友,但是我不明白你想要什么,因为所有有效的整数也是有效的小数。

于 2010-11-08T08:55:43.290 回答