- Код: Выделить всё
public abstract class Option
{
private readonly String _id;
public const Option Null = null;
public static Boolean operator !=(Option option, String optionId)
{
return !(option == optionId);
}
public static Boolean operator !=(Option option1, Option option2)
{
return !(option1 == option2);
}
}
Заметьте перегруженный переопределенный оператор неравенства и публичное, статичное поле Null типа Option. При проверке экземпляра класса на Option.Null Resharper указывает на ошибку неоднозначной ссылки:
- Код: Выделить всё
if (option != Option.Null)
{...}
Он подчеркивает != и говорит что не может выбрать правильный оператор, тогда как компилятор C# корректно использует вторую перегрузку.