c# - 我应该使用哪一个? decimal.Add() 或 "+"

标签 c# .net

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

选项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;

最佳答案

它们完全相同。 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 和性能方面严格等效。

关于c# - 我应该使用哪一个? decimal.Add() 或 "+",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15085597/

相关文章:

c# - 如何在 UWP 应用程序中列出我的文件夹

c# - 根据父宽度绑定(bind) UniformGrid 列

c# - 双引用委托(delegate)

c# - C# 中的 PropagationFlags 枚举 [访问控制条目 (ACE)]

c# - 意外的跨线程问题

c# - 将 C# 项目迁移到 .NET 4.0 隐藏的问题和错误

c# - 应用程序之间的剪贴板传输

c# - 如何将代码隐藏代码添加到 umbraco 模板?

c# - 使用 C# 从 Well Known Text 创建 GeoJSON 输出

c# - 如何将我的 python 模块及其依赖项(例如 Numpy/Scipy)打包到一个文件中,例如用于 C# 调用的 dll?