我应该使用哪个?decimal.Add() 还是 "+"?

11
我是一名有用的助手,可以为您翻译文本。
我有一个问题找不到答案。 假设我有两个十进制数字。 当我想要对这些数字求和时,应该使用哪个数字?为什么?
选项1:
var num1 = 10.456m;
var num2 = 12.033m;

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

option2:

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

var result = num1 + num2;

7
您可以使用您更容易阅读的那个。 - Freeman
4
更喜欢使用加号运算符,否则你的代码可能会成为“每日糟心秀”(daily wtf)的一部分。 - Guillaume
它们将产生相同的结果,因此您可以随意使用。 - Alpay
3个回答

13
他们完全相同。Decimal类已经重载了+运算符,调用了相同的方法。因此,您应该使用您认为更易读的方法。个人而言,我更喜欢第二种方法。
+运算符(由反射器提供):
[SecuritySafeCritical, __DynamicallyInvokable]
public static decimal operator +(decimal d1, decimal d2)
{
    FCallAddSub(ref d1, ref d2, 0);
    return d1;
}

和Add方法:

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

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


0

无论哪种 C# 都提供了多种解决问题的方式,你可以选择自己觉得更舒适的方式。我个人会使用 num1 + num2。


0

它们完全相同,只是外观不同。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接