C# “如何处理/转换”&引用;在C中#

C# “如何处理/转换”&引用;在C中#,c#,C#,在C#Convert.ToInt32()中,Convert类的任何方法都可以处理空值,但所有这些方法都不能将“”作为输入处理。引发错误“输入字符串格式不正确” 是否有办法将“”处理/转换为其特定值?像 Convert.ToInt32("") convert to 0 Convert.ToDecimal("") convert to 0.0 不使用if条件 谢谢。C#中的POD类有一个方法就是为了这个原因: 您甚至可以编写一个扩展方法来简化此过程: public static class Ex

在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
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
试一试

试一试


框架中没有任何固有的东西可以为您做到这一点。对于整个社区来说,将“”理解为您想要的默认值0或0.0可能没有意义。我建议您编写自己的方法,以满足您的具体需求

大意是:

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

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

框架中没有任何固有的东西可以为您这样做。对于整个社区来说,将“”理解为您想要的默认值0或0.0可能没有意义。我建议您编写自己的方法,以满足您的具体需求

大意是:

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

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

我不知道。这些方法的目的是获取一个可以解析的数字——空字符串不是。据我所知不是。这些方法的目的是获取一个可以解析的数字-空字符串不是。您可以进一步改进此方法,以传入默认值(默认值可能为0)。这将为OP提供更改每次转换的默认值的灵活性。您可以进一步改进这一点,以传入默认值(其本身可能默认为0)。这将为OP提供更改每次转换的默认值的灵活性。