Я пытаюсь отследить очень неуловимую ошибку в приложении, которое манипулирует FlowDocument
.Ниже я показал три последовательные строки кода отладки вместе с их выводом:
Debug.Assert(ReferenceEquals(document1, document2));
Debug.WriteLine(document1.Blocks.Count); // 1
Debug.WriteLine(document2.Blocks.Count); // 3
Может кто-нибудь помочь мне понять, как две ссылки на один и тот же объект могут иметь разные значения для данного свойства?Или я что-то упускаю из-за того, как ReferenceEquals
работает?
Спасибо,
Тим
Редактировать:
Если я изменю утверждение на if
блок, код отладки никогда не запускается ...
if (ReferenceEquals(document1, document2))
{
Debug.WriteLine(document1.Blocks.Count);
Debug.WriteLine(document2.Blocks.Count);
}
... что заставляет меня чувствовать себя совершенно глупо, потому что тест ReferenceEquals
явно работает, но я не понимаю, почему утверждениене работает.