是否有更简单的方法来解析c#然后:
float temp;
if (float.TryParse(quantity.ToString(), out temp))
{
noteProduct.Quantity = temp;
}
由于
答案 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(); }
}
}