Я предполагаю, что я напишу, я должен сначала уточнить, это не то, чего я хотел бы достичь. Это случилось со мной, и я пытаюсь понять, как это возможно, поэтому я могу это исправить. Итак, вот мы идем ...Как переменная может иметь два значения одновременно?
Я использую C#, .Net 4.0. Код является большим, слишком большим, чтобы пройти все это здесь, но я пытаюсь объяснить, что происходит в надежде, что кто-нибудь знает, кто будет иметь некоторые мысли.
В моем стеке вызовов у меня есть ряд общих методов, и я заметил, что хотя значение должно быть просто передано от одного к другому, оно меняется. Хорошо, это было мое первое впечатление. Позже мне удалось выделить один проблемный метод, в котором при остановке я могу видеть два разных значения для одного и того же свойства объекта.
public class Sample : BaseClass, ISomeInterface
{
[XmlIgnore]
public new Guid Id { get; set; }
}
Что может быть значительным, что оба BaseClass и ISomeInterface определяют
public Guid Id
так что теперь, когда я останавливаюсь в этих родовых методах и смотреть переменные данные из образца типа я могу расширить свои свойства и см. первое значение Id. Но когда я смотрю data.Id, он показывает различное значение. Посмотрите сами.
(Здесь была картина, которую я не могу отправить из-за незначительной репутации Sorry.)
Edit: я толкнул его там http://picturepush.com/public/7307446
ли какой-либо орган, там знают, что такое различие в том, как те значения в окне Часы окна? В чем разница? Я пробовал много разных подходов, кастинг, используя отражение, но всегда получаю значение так же, как при наблюдении data.Id и по иронии судьбы, правильное значение, которое я ожидаю, другое, неуловимое.
О, и нет, это не домашнее задание;)
Загрузить картинку, чтобы где-нибудь еще, пожалуйста. – gdoron
Как выглядит BaseClass? Когда вы проверяете, что значение - это экземпляр класса Sample, выбранный как образец класса или BaseClass? –
Является ли свойство украшено DebuggerDisplayAttribute? Вы можете отобразить другое значение для того, что видите, когда вы расширяете объект в отладчике. –