непонятки с Equals
От: XentaAbsenta Россия  
Дата: 22.10.08 21:16
Оценка:
Сегодня занимался тестированием и отладкой, в процессе наткнулся на странное поведение. Доквовырял до одного из базовых классов и был неприятно удивлён увиденным. Метод Equals выдавал совершенно не то, что я от него ожидал.
=================================================
public override bool Equals( object obj )
{
if (!(obj is CKeyField))
return false;
CKeyField right = (CKeyField)obj;
bool NamesEquals = m_FieldName.ToUpper() == right.m_FieldName.ToUpper();
bool ValueEquals = m_FieldValue == right.m_FieldValue;
return
NamesEquals & ValueEquals ;
}
============================================
В строке
bool ValueEquals = m_FieldValue == right.m_FieldValue;
в момент отладки сравнивалось два интовых значения, т.е. m_FieldValue содержало (int)1 и right.m_FieldValue содержало (int)1, Тем не менее на выходе я получил False. Тип поля object.
ЗЫ: Я в шоке!!!! Что делать?????
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.