c# - 真正测试值类型的默认值?
问题描述
在 C# 中,如何正确检查值类型的值是否是真正的默认值?换句话说:是否所有元素都为零,如语言所指定的那样?
对结构使用x == default
requires 来定义一个相等比较器,它可以被实现为任何东西。UsingEqualityComparer<T>.Default.Equals(x, default)
还允许结构通过实现覆盖默认检查IEquatable<T>
。
有没有更好的方法然后使用unsafe
块并进行逐字节相等检查?
解决方案
推荐阅读
- c# - c# 在后台任务内的作用域服务中实现工厂
- apache-kafka - 如何同时创建一个组件 - 一个 kafka 消费者和一个 kafka 生产者?
- javascript - Mongoose - 更新时如何验证模型?
- javascript - 如何使 matchMedia 与 scrollTop 函数一起使用?
- ios - 如何在几秒钟后从其出现的 ios 中隐藏图像
- c++ - 为什么输出总是空的?
- reactjs - 我们如何在基于类的组件的 componentDidUpdate() 生命周期中停止重复调用,就像我们在 useEffect 挂钩中所做的那样?
- django - Django 会话认证和 Axios POST 信号
- php - Laravel - 返回控制器
- java - 我的变量没有显示有什么原因吗?- HTML