出于好奇,我试图为MsCorLib.dll中的Int32的+, - ,*等一元运算符找到相关的运算符重载
我使用ILSpy。
当我检查System.Int32结构定义时,我看不到任何与运算符重载相关的内容。
问:我看错了地方 - 然后我应该在哪里查看基本类型的运算符重载 - 或者我甚至不希望看到这些方法?
答案 0 :(得分:2)
运算符是C#的一部分,在C# Language Specification中定义。
示例:的
7.7.2一元减号运算符
[...] 预定义的否定运算符是:
整数否定:
int operator –(int x); long operator –(long x);
通过从零减去x来计算结果。 [...]
浮点否定:
float operator –(float x); double operator –(double x);
结果是x的值,其符号被反转。如果x是NaN,则结果也是NaN。
十进制否定:
decimal operator –(decimal x);
通过从零减去x来计算结果。十进制否定等效于使用System.Decimal类型的一元减运算符。