加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

显示C#中的引用地址(调试WCF)

发布时间:2020-12-15 23:56:30 所属栏目:百科 来源:网络整理
导读:我正在调试一个双向通信的WCF项目.我有一个回调数据,我存储在一个数组客户端,一个WinForm,并用于绘制一个控件.你可以猜到,当我读取数据时,数据从数组中写入(实际上是列表)就消失了. 对于调试,我想看看我是否正在编写和读取相同的对象,以便回调函数不会进行某
我正在调试一个双向通信的WCF项目.我有一个回调数据,我存储在一个数组客户端,一个WinForm,并用于绘制一个控件.你可以猜到,当我读取数据时,数据从数组中写入(实际上是列表)就消失了.

对于调试,我想看看我是否正在编写和读取相同的对象,以便回调函数不会进行某种复制并将其丢弃.例如,我想看到这个指针的地址.我如何在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);
        }

当我调试时,我先在回调处理程序中输入并在卡片中添加一张卡片
PaintCards()调用Invalidate并运行paint事件.在cardPanel_Paint中,cards.Count再次为零.

最好的祝福.
G?rgen

解决方法

在Watch / Locals / Autos窗口中,您可以右键单击对象并选择“Make Object ID”为对象提供标识号.这个数字实际上与本机对象的地址相同;它有助于识别.

在垃圾收集和压缩中跟踪对象的标识,因此在应用程序的整个生命周期中,您可以判断某个对象是否是您最初标记的对象.此功能可能对您的情况有所帮助.

This blog post快速浏览了该功能.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读