[R#] 2017.2 Custom operators
От: rameel https://github.com/rsdn/CodeJam
Дата: 29.08.17 09:14
Оценка: +1
Если для структуры определены операторы сравнения, то решарпер на операции сравнения Nullable<T> с null (value != null) показывает, что используется кастомный оператор и при переходе на определение оператора прыгает на этот кастомный оператор, хотя компилятор в этом месте ипользует HasValue.

public struct MyStruct
{
    public static bool operator ==(MyStruct a1, MyStruct a2) => throw new NotImplementedException();
    public static bool operator !=(MyStruct a1, MyStruct a2) => !(a1 == a2);

    public override bool Equals(object obj)
    {
        var s = obj as MyStruct?;
        if (s != null)
            return this == s.GetValueOrDefault();

        return false;
    }
}


... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
Re: [R#] 2017.2 Custom operators
От: qxWork Голландия http://www.jetbrains.com/company/people/Coox_Sergey.html
Дата: 31.08.17 14:33
Оценка:
Здравствуйте, rameel, Вы писали:

R>Если для структуры определены операторы сравнения, то решарпер на операции сравнения Nullable<T> с null (value != null) показывает, что используется кастомный оператор и при переходе на определение оператора прыгает на этот кастомный оператор, хотя компилятор в этом месте ипользует HasValue.

Спасибо, завел реквест
Re: [R#] 2017.2 Custom operators
От: IvaDuke Россия  
Дата: 04.09.17 09:04
Оценка:
Серым подсвечает сама Visual Studio. Навигацию (Ctrl-Click) обеспечивает решарпер и при этом полностью соответсвует Visual Studio.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.