C# 中的 HasValue 属性通常用于可空类型(nullable types)的场景。可空类型是那些可以表示“值存在”或“值不存在”(即具有默认值或无值)的类型。C# 中的可空类型以问号(?)结尾,例如 int?、string?、DateTime? 等。
HasValue 属性用于检查可空类型的变量是否已经赋予了非默认值。如果变量已经赋予了非默认值,则 HasValue 返回 true;否则返回 false。这对于在处理可能为空的值时避免空引用异常(NullReferenceException)非常有用。
以下是一些使用 HasValue 的场景:
HasValue 检查数据是否有效。例如,如果用户输入了一个电话号码,可以检查该电话号码是否为空,然后再尝试将其保存到数据库。HasValue 进行条件判断。例如,如果一个字符串变量不为空,可以对其进行处理;否则,可以执行其他操作。HasValue 确保转换是安全的。例如,如果一个可空的整型变量不为空,可以将其转换为非可空的整型类型。HasValue 来过滤掉那些值为空的记录。例如,在一个包含学生信息的列表中,可以使用 HasValue 过滤掉那些没有姓名的学生记录。需要注意的是,HasValue 只能用于可空类型,而不能用于非可空类型。对于非可空类型,可以直接使用条件语句(如 if 语句)来检查变量是否为空。