Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, anton_t, Вы писали:
_>>Вызывай
_>>!object.ReferenceEquals(myObj, null)
_>>А то ты хочешь странного: я переопределил оператор, но не хочу что бы он переопределялся.
V>Что-то я не понял рассуждения, ты хочешь сказать, что может быть еще какая-то семантика проверки ссылочного типа на null?
А почему нет? Зачем создавать искусственные нагромождения правил: если тут null, то будет так-то, а если не null то будет по другому, а по средам ещё как-нибудь.
V>P.S. в вызове ReferenceEquals специфицировать object не обязательно.
Можно, но я предпочитаю писать с object
using System;
namespace ConsoleApplication8
{
class Program
{
public static bool ReferenceEquals(Program p1, Program p2)
{
return true;
}
static void Main(string[] args)
{
Console.WriteLine(ReferenceEquals(new Program(), new Program()));
Console.WriteLine(object.ReferenceEquals(new Program(), new Program()));
Console.ReadLine();
}
}
}