将对象变量转换为具有最佳性能的十进制

时间:2011-05-08 13:54:10

标签: c#

我使用以下代码将对象值转换为十进制。我可以编写此代码以获得最佳性能吗?

decimal a;
try
{
   a=decimal.Parse(objectvariable);
}
catch(Exception)
{
   a=0;
} 

4 个答案:

答案 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;

希望得到这个帮助。