首页 > 解决方案 > 真正测试值类型的默认值?

问题描述

在 C# 中,如何正确检查值类型的值是否是真正的默认值?换句话说:是否所有元素都为零,如语言所指定的那样?

对结构使用x == defaultrequires 来定义一个相等比较器,它可以被实现为任何东西。UsingEqualityComparer<T>.Default.Equals(x, default)还允许结构通过实现覆盖默认检查IEquatable<T>

有没有更好的方法然后使用unsafe块并进行逐字节相等检查?

标签: c#iequalitycomparer

解决方案


推荐阅读