Re: C#
От: Gena_Popov  
Дата: 28.06.04 08:27
Оценка: 9 (1)
Здравствуйте, Аноним, Вы писали:


А>По идее при вызове статического метода проверка должна проходить, но этого не происходит и ссылки оказываются разными. Так и должно быть?



Все должно быть именно так.
Если ты заменишь в своем методе int на object (а так же тип передаваемого объекта), то ReferenceEquals вернет true.
А в твоем случае метод ReferenceEquals возвращает false т.к. перед передачей в метод, происходит боксинг параметров,
и в тело функции попадают уже разные объекты.

Этот код вернет "!Equals".
            int i = 5;
            if (object.ReferenceEquals(i, i))
                MessageBox.Show("Equals");
            else
                MessageBox.Show("!Equals");
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.