Где можно увидеть перегрузки операторов примитивных типов с помощью ILSpy? - PullRequest
3 голосов
/ 05 марта 2012

Просто из любопытства я пытался найти соответствующие перегрузки операторов для унарных операторов, таких как +, -, * и т. Д. Для Int32, в MsCorLib.dll

Я использую ILSpy.

Когда я проверял определение структуры System.Int32, я не мог видеть никакой связанной с перегрузкой оператора.

Q: Я смотрю на неправильное место - тогда, где я должен посмотреть, чтобы увидеть перегрузки операторов для примитивных типов - или я даже не должен ожидать увидеть эти методы?

1 Ответ

2 голосов
/ 05 марта 2012

Операторы являются частью 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.

...