You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调试时如何验证C#中是否始终操作同一对象?

调试时验证C#对象是否为同一实例的方法

1. 使用GetHashCode()方法

在监视窗口或代码中调用this.GetHashCode(),同一对象的哈希值在生命周期内保持稳定(默认实现基于内存地址)。在不同断点处记录该值,对比是否一致即可判断是否为同一实例。

注意:如果自定义类重写了GetHashCode(),此方法失效,需改用其他方案。

2. 利用调试器的对象ID功能

  • Visual Studio调试时,右键点击监视窗口中的this对象,选择Make Object ID,调试器会为该对象分配唯一ID(如#1)。
  • 在后续断点中查看对象,若显示相同ID则为同一实例;新对象会生成新ID(如#2),以此区分。

3. 添加自定义唯一标识字段

在自定义类中新增只读的唯一标识字段,示例代码:

public class CustomSocketWrapper
{
    private readonly Guid _instanceId = Guid.NewGuid();
    // 其他成员和逻辑...
}

调试时监视this._instanceId,不同实例的Guid完全不同,直接对比即可确认。

4. 使用Object.ReferenceEquals()方法

在即时窗口或调试代码中执行以下语句,判断两个对象是否为同一实例:

Object.ReferenceEquals(targetInstance, this)

返回true表示是同一对象,false则为不同实例。可在不同断点处保存对象引用后进行对比。


内容的提问来源于stack exchange,提问作者Dominique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 01:35:37