我使用以下代码将对象值转换为十进制。我可以编写此代码以获得最佳性能吗?
decimal a;
try
{
a=decimal.Parse(objectvariable);
}
catch(Exception)
{
a=0;
}
答案 0 :(得分:2)
您应该使用Exception
结构上的Parse
方法,而不是使用static TryParse
方法来强制您抓住Decimal
。
这将尝试执行解析,如果失败,则返回一个布尔值,确定您是否成功。如果成功,则解析的结果将通过您传入的out参数返回。
例如:
decimal a;
if (Decimal.TryParse(objectvariable, out a))
{
// Work with a.
}
else
{
// Parsing failed, handle case
}
原因是速度更快,它不依赖于Exception
被抓住,这本身就是relatively expensive operation。
答案 1 :(得分:1)
我总是使用decimal.TryParse()
代替decimal.Parse()
它更安全,更快我猜
答案 2 :(得分:1)
您是否尝试过Decimal.TryParse
Method
decimal number;
if (Decimal.TryParse(yourObject.ToString(), out number))
Console.WriteLine(number);
else
Console.WriteLine("Unable to parse '{0}'.", value);
答案 3 :(得分:0)
使用
decimal decimalValue = decimal.MinValue;
if(decimal.TryParse(objectvariable, out decimalValue))
return decimalValue;
else
return 0;
希望得到这个帮助。