通过使用ILSpy,我在哪里可以看到原始类型的运算符重载?

时间:2012-03-04 21:26:04

标签: c# .net operator-overloading clr mscorlib

出于好奇,我试图为MsCorLib.dll中的Int32的+, - ,*等一元运算符找到相关的运算符重载

我使用ILSpy。

当我检查System.Int32结构定义时,我看不到任何与运算符重载相关的内容。

问:我看错了地方 - 然后我应该在哪里查看基本类型的运算符重载 - 或者我甚至不希望看到这些方法?

1 个答案:

答案 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类型的一元减运算符。

  •