Если для структуры определены операторы сравнения, то решарпер на операции сравнения 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>>
Здравствуйте, rameel, Вы писали:
R>Если для структуры определены операторы сравнения, то решарпер на операции сравнения Nullable<T> с null (value != null) показывает, что используется кастомный оператор и при переходе на определение оператора прыгает на этот кастомный оператор, хотя компилятор в этом месте ипользует HasValue.
Спасибо, завел
реквест
Серым подсвечает сама Visual Studio. Навигацию (Ctrl-Click) обеспечивает решарпер и при этом полностью соответсвует Visual Studio.