在C#Convert.ToInt32()中,Convert类的任何方法都可以处理空值,但所有这些方法都不处理“”作为输入。引发错误“输入字符串格式不正确” 有没有办法处理/转换“”到其特定值?像
Convert.ToInt32("") convert to 0
Convert.ToDecimal("") convert to 0.0
没有使用if条件
感谢。
答案 0 :(得分:3)
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
答案 1 :(得分:0)
int i;
bool b = int.TryParse("", out i);
Console.WriteLine(b);
答案 2 :(得分:0)
框架中没有任何固有的功能可以帮助您。对于整个社区来说,理解“”可能没有意义,因为你可以根据需要将其默认为0或0.0。我建议您编写自己的方法来执行您特别想要的操作。
产生效果:
public class MyConvert
{
public static int ToInt32(string input)
{
return String.IsNullOrEmpty(input) ? 0 : Convert.ToInt32(input);
}
}
我意识到你不想做if检查,但你必须以某种方式检查它(通过检查.IsNullOrEmpty或.TryParse),所以将它抽象到你自己的转换方法中至少意味着你不要不必每次都这样做。