C# 级联分析

C# 级联分析,c#,.net,parsing,tryparse,C#,.net,Parsing,Tryparse,我可能有以下类型: 带小数的数字:100.90 数字(int32):32 字符串:“ 我想要的是一个函数,它尝试解析为十进制,如果失败,则尝试解析为int,如果失败,则解析为字符串。 C#中任何具有以下功能的函数都是受欢迎的。()是您的朋友,但是我不明白您想要什么,因为所有有效的整数也都是有效的小数。()是您的朋友,但是我不明白您想要什么,因为所有有效的整数也都是有效的小数 public static object cascadeParse(string obj) { decimal d

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

我想要的是一个函数,它尝试解析为十进制,如果失败,则尝试解析为int,如果失败,则解析为字符串。 C#中任何具有以下功能的函数都是受欢迎的。

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

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

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;
    }
}
但是,当传递可以解析为
int
的内容时,此方法将始终返回
decimal
,因为
int
s始终可以解析为
decimal
。您可能需要重新排列
TryParse
s,以将
int
一个放在第一位


但是,当传递可以解析为
int
的内容时,此方法将始终返回
decimal
,因为
int
s始终可以解析为
decimal
。您可能需要对
TryParse
s重新排序,将
int
放在第一位。

此函数最终会返回什么?如果成功解析为int或decimal,则返回格式化货币字符串。如果不是,则仅返回字符串此函数最终会返回什么?如果成功解析为int或decimal,则返回格式化货币字符串。如果不仅仅是绳子