如何解析或转换

时间:2011-01-18 08:26:18

标签: c#

是否有更简单的方法来解析c#然后:

float temp;
if (float.TryParse(quantity.ToString(), out temp))
{
     noteProduct.Quantity = temp;
}

由于

4 个答案:

答案 0 :(得分:0)

TryParse是最好的方法,如果你想避免可能的例外。

如果您确定quantity始终是有效的浮点数,则只需使用Parse

noteProduct.Quantity = float.Parse(quantity.ToString());

但是,如果quantity.ToString()不是有效的浮点数,则会抛出异常。

答案 1 :(得分:0)

您当然可以使用float.Parse("string") - 但如果无法解析它,它将抛出异常。

对我而言,这是一种安全的解析方式。

答案 2 :(得分:0)

正如其他人所说,是的,有更简单的方法,但这并不意味着你应该使用它们。更容易并不总是意味着更好。在这个例子中,我实际上建议你使你的解析更多变得复杂 - 让它具有文化感。

float temp;
if (Single.TryParse(quantity.ToString(), NumberStyles.Float, CultureInfo.CurentCulture, out temp)
{
    noteProduct.Quantity = temp;
}

答案 3 :(得分:0)

这就是我解决它的方式。这更容易使用,而不是声明临时变量和if语句。

   public class Parsers
    {
        private Parsers() { }

        public static void SetLong(ref long item, object value)
        {
            long temp;
            if (value != null && long.TryParse(value.ToString(), out temp)) { item = temp; }
        }

        public static void SetDateTime(ref DateTime item, object value)
        {
            DateTime temp;
            if (value != null && DateTime.TryParse(value.ToString(), out temp)) { item = temp; }
        }

        public static void SetInt(ref int item, object value)
        {
            int temp;
            if (value != null && int.TryParse(value.ToString(), out temp)) { item = temp; }
        }

        public static void SetString(ref string item, object value)
        {
            if (value != null) { item = value.ToString(); }
        }
    }
相关问题