我正在搜索运算符(==(和Equals((方法之间的区别。许多资源说运算符(==(比较引用标识。什么是参考身份?
除了重复,我发布这个答案是因为这个问题更专业化了我的发现。
简单地说:引用身份就是内存地址相等,因为两个变量是否指向相同的内容,就像一个邮政地址或一杯水。因为引用是隐藏的指针,忘记了管理它们。
GC也是上面的一层,以便于管理内存中的对象实例,并忘记销毁/释放那些我们不再使用的对象。
运算符==
可以重载以比较值而不是引用,因此在object
上有Equals()
和ReferenceEquals()
方法。
以下是一些教程:
C#-数据类型
C#-变量
值类型和参考类型
如何获取CLR对象的引用计数?