考虑一下:
var o = new object();
我如何在运行时检查 o
是否与 new object()
相同。
这失败了:
var o = new object();
var eq1 = o.Equals(new object());
var eq2 = o.Equals(default(object));
var eq3 = o == new object();
var eq4 = Object.Equals(o, new object());
var eq5 = Object.ReferenceEquals(o, new object());
所有 eq
变量都是 false
。
编辑:我想说 o
是 new object
而不是,比如说,重新分配。
本质上,检查运行时类型就足够了。
最佳答案
如果您知道两个 new object()
不同并且只想检查您的对象是否属于 Object
类型,您可以使用 GetType
并对照 typeof
检查:
var o = new object();
bool eq = o.GetType() == typeof(object); // True
int i = new Int32();
bool eq2 = i.GetType() == typeof(object); // False
关于c# - 检查实际的空 System.Object 是否等于空 system.object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31578133/