0

在 C# Convert.ToInt32() 和 Convert 类的任何方法中都可以处理空值,但所有这些方法都不能将“”作为输入处理。抛出错误“输入字符串格式不正确”有什么方法可以将“”处理/转换为其特定值?喜欢

Convert.ToInt32("") convert to 0
Convert.ToDecimal("") convert to 0.0

不使用 if 条件

谢谢。

4

3 回答 3

3

由于这个原因,C# 中的 POD 类有一个方法:

Int32.TryParse

你甚至可以编写一个扩展方法来使这对你更容易:

public static class Extensions {
    public static decimal MyDecimalParse(this string val) { 
        decimal ret = decimal.Zero;
        decimal.TryParse(val, out ret);
        return ret;
    }
} // eo class extension
于 2013-03-03T19:15:33.470 回答
0

尝试int.TryParse

int i;
bool b = int.TryParse("", out i);
Console.WriteLine(b);
于 2013-03-03T19:18:59.320 回答
0

框架中没有任何内在的东西可以为您执行此操作。对于整个社区来说,将“”理解为您希望的默认为 0 或 0.0 可能没有意义。我建议您编写自己的方法来执行您特别想要的操作。

大意是:

public class MyConvert
{
    public static int ToInt32(string input)
    {
        return String.IsNullOrEmpty(input) ? 0 : Convert.ToInt32(input);
    }
}

我意识到您不想进行 if 检查,但您必须以一种或另一种方式检查它(通过检查 .IsNullOrEmpty 或 .TryParse),因此将其抽象为您自己的转换方法至少意味着您没有每次都这样做。

于 2013-03-03T19:22:18.087 回答