Я отлаживаю проект WCF с двусторонней связью. У меня есть обратный вызов с данными, которые я храню в массиве клиента, WinForm, и использую их для рисования элемента управления. Как вы можете догадаться, данные исчезают из записи в массив (на самом деле в список), когда я читаю данные.
Для отладки я хотел бы посмотреть, пишу ли я и читаю один и тот же объект , чтобы функция обратного вызова не делала своего рода копию и выбрасывала ее. Например, я хочу увидеть адрес указателя this. Как мне это сделать в VS2010 Exp?
Редактировать
Какой-то код:
Объявление поля:
// the cards that the player have
private List<Card> cards = new List<Card>();
обработчик обратного вызова:
private void btnDraw_Click(object sender, EventArgs e)
{
Tuple<Card, string> update = PressedDraw(this);
cards.Add(update.Item1);
PaintCards();
}
событие рисования:
private void cardPanel_Paint(object sender, PaintEventArgs e)
{
int counter = 0;
Point fromCorner = new Point(20,12);
int distance = 50;
foreach (Card card in cards)
{
Point pos = fromCorner;
pos.Offset(counter++ * distance, 0);
Bitmap cardBitmap =
cardFaces[Convert.ToInt32(card.suit),
Convert.ToInt32(card.rank)];
Rectangle square = new Rectangle(pos, cardBitmap.Size);
e.Graphics.DrawImage(cardBitmap, square);
}
Когда я отлаживаю, я сначала вхожу в обработчик обратного вызова и добавляю Card
в cards
PaintCards()
вызывает Invalidate
и событие рисования запускается. Когда в cardPanel_Paint
, cards.Count
снова равен нулю.
С наилучшими пожеланиями.
Görgen