为什么C#为浮点类型实现前/后递增/递减运算符?

Tra*_*rap 4 c# language-design operators

在浮点值中添加/减去1值得专用的运算符有什么特别之处?

double a = -0.001234129;
a++; // ? 
Run Code Online (Sandbox Code Playgroud)

我从来没有觉得需要使用这样的结构; 它看起来很奇怪.但如果我不得不这样做,我会感到更舒服:

a += 1;
Run Code Online (Sandbox Code Playgroud)

也许是因为我强大的C++背景,但对我而言,它使变量看起来像数组索引器.

这有什么理由吗?

T.J*_*der 8

++--所有其他数字类型,为什么要对浮点数例外运营商操作?对我来说,这将是更令人惊讶的选择.


请注意,C++也为浮点实现了这些:

#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
    double a = 0.5;
    cout << a << '\n';
    ++a;
    cout << a << '\n';
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

0.5
1.5