在 C# Convert.ToInt32() 和 Convert 类的任何方法中都可以处理空值,但所有这些方法都不能将“”作为输入处理。抛出错误“输入字符串格式不正确”有什么方法可以将“”处理/转换为其特定值?喜欢
Convert.ToInt32("") convert to 0
Convert.ToDecimal("") convert to 0.0
不使用 if 条件
谢谢。
在 C# Convert.ToInt32() 和 Convert 类的任何方法中都可以处理空值,但所有这些方法都不能将“”作为输入处理。抛出错误“输入字符串格式不正确”有什么方法可以将“”处理/转换为其特定值?喜欢
Convert.ToInt32("") convert to 0
Convert.ToDecimal("") convert to 0.0
不使用 if 条件
谢谢。
由于这个原因,C# 中的 POD 类有一个方法:
你甚至可以编写一个扩展方法来使这对你更容易:
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
int i;
bool b = int.TryParse("", out i);
Console.WriteLine(b);
框架中没有任何内在的东西可以为您执行此操作。对于整个社区来说,将“”理解为您希望的默认为 0 或 0.0 可能没有意义。我建议您编写自己的方法来执行您特别想要的操作。
大意是:
public class MyConvert
{
public static int ToInt32(string input)
{
return String.IsNullOrEmpty(input) ? 0 : Convert.ToInt32(input);
}
}
我意识到您不想进行 if 检查,但您必须以一种或另一种方式检查它(通过检查 .IsNullOrEmpty 或 .TryParse),因此将其抽象为您自己的转换方法至少意味着您没有每次都这样做。