11

我有一个找不到答案的问题。想象一下,我有两个十进制数。当我想对数字求和时,我应该使用哪一个?

选项1:

var num1 = 10.456m;
var num2 = 12.033m;

var result = decimal.Add(num1, num2);

选项2:

var num1 = 10.456m;
var num2 = 12.033m;

var result = num1 + num2;
4

3 回答 3

13

它们是完全一样的。该类Decimal重载了+调用相同方法的运算符。所以你应该使用你觉得更具可读性的那个。我个人更喜欢第二种方法。

+操作员(由反射器提供):

[SecuritySafeCritical, __DynamicallyInvokable]
public static decimal operator +(decimal d1, decimal d2)
{
    FCallAddSub(ref d1, ref d2, 0);
    return d1;
}

和添加方法:

[SecuritySafeCritical, __DynamicallyInvokable]
public static decimal Add(decimal d1, decimal d2)
{
    FCallAddSub(ref d1, ref d2, 0);
    return d1;
}

在 IL 和性能方面严格等效。

于 2013-02-26T09:36:46.913 回答
0

两种 c# 都为您提供了多种解决问题的方法,您可以选择一种您觉得更舒服的方法。我个人使用 num1 + num2。

于 2013-02-26T09:37:01.040 回答
0

两者完全一样,只是外观不同。

于 2013-02-26T09:37:31.510 回答