【发布时间】:2020-04-30 23:11:40
【问题描述】:
我有一段具有 object 类型的 currentValue 的代码。
object currentValue = 0;
bool result = object.Equals(currentValue, default);
我希望结果为真,因为 0 是默认值。
这也不对
object.Equals(0, default);
这不是真的
Int32.Equals(0, default);
我的问题是如何检查一个装箱的值是否是默认值。
我想应该这样做:
Type type = currentValue?.GetType();
object.Equals
(
currentValue,
type != null && type.IsValueType
?
Activator.CreateInstance(type)
:
null
);
【问题讨论】:
-
参考什么是否正确?问“是否正确”意味着您编写的代码就是答案;问题是什么?
-
你可能想要返回
true的object.Equals(currentValue, default(int)); -
编辑后,您的问题值得关闭。请在下次提问时更加明智。
标签: c#