Re[4]: Багодром: Реализация операторов сравнения
От: anton_t Россия  
Дата: 31.03.08 16:50
Оценка: :)
Здравствуйте, 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();
        }
    }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.