Re: Багодром: Реализация операторов сравнения
От: _FRED_ Черногория
Дата: 18.04.08 07:18
Оценка: 37 (1) +1 :)
Здравствуйте, Чистяков Влад (VladD2), Вы писали:

ЧВV>Статья:

ЧВV>Багодром: Реализация операторов сравнения
Автор(ы): Чистяков Влад (VladD2)
Дата: 15.03.2008
Данная статья посвящена вопросу грамотной реализации операторов сравнения. При кажущейся простоте, эта задача несет в себе ряд скрытых трудностей. Реализация операторов сравнения нередко приводит к появлению неприятных ошибок. В основном эта информация касается C#-программистов, но будет полезна тем, кто пишет .NET-код и на других языках.


Гхм… (коменты удалил)

Таким образом, общий паттерн реализации операторов будет следующим (паттерн приводится на основе кода класса DropDownMember, приведенного в начале статьи):

public static bool operator ==(DropDownMember m1, DropDownMember m2)
{
  if (object.ReferenceEquals(m1, m2))
    return true;
  
  if (object.ReferenceEquals(m1, null))
    return false;

  return m1.Equals(m2);
}


Гхм… Гхм… Гхм…:

public static bool operator ==(DropDownMember m1, DropDownMember m2)
{
  return Equals(m1, m2);
}




P.S. Для тех, кто не видел:
    public static bool Equals(Object objA, Object objB) 
    {
        if (objA==objB) {
            return true;
        } 
        if (objA==null || objB==null) {
            return false; 
        } 
        return objA.Equals(objB);
    }
... << RSDN@Home 1 alpha 3 rev. 0>>
Help will always be given at Hogwarts to those who ask for it.
Re: Багодром: Реализация операторов сравнения
От: dimaka Россия http://dmitry-pavlov.com
Дата: 23.04.08 11:38
Оценка:
Здравствуйте, Чистяков Влад (VladD2):

Относительно реализации операторов — хорошая статья. Спасибо.

Относительно MPF и Navigation Bar-a, следовало бы на Microsoft Connect bug запостить. Глядишь в следующей версии VS SDK уже и поправили б Всем бы польза была.

А так — чего хулить-то без толку?
Remote ASP.NET / C# Developer
Re[2]: Багодром: Реализация операторов сравнения
От: Andrbig  
Дата: 24.04.08 09:42
Оценка:
Здравствуйте, dimaka, Вы писали:


D>Относительно MPF и Navigation Bar-a, следовало бы на Microsoft Connect bug запостить. Глядишь в следующей версии VS SDK уже и поправили б Всем бы польза была.


D>А так — чего хулить-то без толку?


А есть уверенность, что этого постинга станет лучше? Один раз баг запостили, так эти деятели сделали только хуже...
Re: Багодром: Реализация операторов сравнения
От: Хнык Россия  
Дата: 28.04.08 18:53
Оценка: :)
Здравствуйте, Чистяков Влад (VladD2), Вы писали:

ЧВV>Статья:

ЧВV>Багодром: Реализация операторов сравнения
Автор(ы): Чистяков Влад (VladD2)
Дата: 15.03.2008
Данная статья посвящена вопросу грамотной реализации операторов сравнения. При кажущейся простоте, эта задача несет в себе ряд скрытых трудностей. Реализация операторов сравнения нередко приводит к появлению неприятных ошибок. В основном эта информация касается C#-программистов, но будет полезна тем, кто пишет .NET-код и на других языках.


ЧВV>Авторы:

ЧВV> Чистяков Влад (VladD2)

ЧВV>Аннотация:

ЧВV>Данная статья посвящена вопросу грамотной реализации операторов сравнения. При кажущейся простоте, эта задача несет в себе ряд скрытых трудностей. Реализация операторов сравнения нередко приводит к появлению неприятных ошибок. В основном эта информация касается C#-программистов, но будет полезна тем, кто пишет .NET-код и на других языках.


  // В этом месте, если m1 равна null, то m1 уже не может быть 
  // равна null. Стало быть, объекты не равны, и можно вернуть false.
  if (object.ReferenceEquals(m1, null))
    return false;


Опечатка. Имхо, менее претенциозное название статье не повредило бы. Или проверить пицот раз.
Мну думает. Значит. Ага.
Re[2]: Багодром: Реализация операторов сравнения
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.10.08 14:53
Оценка:
Здравствуйте, dimaka, Вы писали:

D>Относительно MPF и Navigation Bar-a, следовало бы на Microsoft Connect bug запостить. Глядишь в следующей версии VS SDK уже и поправили б Всем бы польза была.


D>А так — чего хулить-то без толку?


Дык. Толк как не странно есть. Данный проект выложели на www.codeplex.com/mpfproj
Так что теперь (наверно) можно даже самим баги будет править.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Багодром: Реализация операторов сравнения
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.10.08 21:42
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Дык. Толк как не странно есть. Данный проект выложели на www.codeplex.com/mpfproj


Это не весь MPF, а крохотный его кусочек, ответсвенный за создание собственных типов проектов.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[4]: Багодром: Реализация операторов сравнения
От: Блудов Павел Россия  
Дата: 06.10.08 05:10
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Это не весь MPF, а крохотный его кусочек, ответсвенный за создание собственных типов проектов.

Тем не менее, этого кусочка достаточно чтобы собрать интеграцию студии с Немерлем.
Если бы ещё regpkg.exe куда выложили, так и vssdk вообще не нужно было бы ставить.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.