C# - 如何测试实例是否为其类型的默认值

Tim*_*ter 5 c#

给定一个未知引用或值类型的实例,有没有办法测试实例是否包含该类型的默认值?我设想这样的事情......

bool IsDefaultValue(object value)
{
    return value == default(value.GetType());
}
Run Code Online (Sandbox Code Playgroud)

当然,这不起作用,因为GetType返回运行时类型,但我希望有人可以建议类似的技术.谢谢.

Jul*_*iet 9

static bool IsDefaultValue<T>(T input)
{
    return Object.Equals(input, default(T));
}
Run Code Online (Sandbox Code Playgroud)

注意:==使用泛型类型T 不能使用相等性.

  • 你可以跳过显式的Object,只做Equals(输入,默认((T)) (4认同)