wes*_*wes 4 c# python mutability
是否有一个C#等同于Python的id()?如果没有,我如何测试对象是否已更改?例如,在Python中,一个不可变对象:
>>> s = "abc"
>>> id(s)
11172320
>>> s += "d"
>>> id(s)
18632928
Run Code Online (Sandbox Code Playgroud)
一个可变的:
>>> a = [1, 2, 3]
>>> id(a)
11259656
>>> a += [4]
>>> id(a)
11259656
Run Code Online (Sandbox Code Playgroud)
编辑 - 到目前为止,大多数答案都是关于比较函数/运算符,但我对正在比较的值更感兴趣.我最初并不清楚这一点,我接受Object.ReferenceEquals了答案.
好吧,你可以使用这个Object.ReferenceEquals()函数:
判断指定的Object实例是否是同一个实例。
借用一下你的 Python 例子:
List<int> listA = new List<int> { 1, 2, 3 };
List<int> listB = listA;
listA.Add(4);
bool equal = object.ReferenceEquals(listA, listB);
Run Code Online (Sandbox Code Playgroud)
equal将true。
| 归档时间: |
|
| 查看次数: |
444 次 |
| 最近记录: |