提问人:Luchian Grigore 提问时间:9/6/2011 最后编辑:CommunityLuchian Grigore 更新时间:9/6/2011 访问量:129
C# 语法问题 [重复]
C# syntax question [duplicate]
问:
可能的重复项:
?C# 中的 (nullable) 运算符
什么 ?像这样使用:
class Test
{
public int? aux;
}
对于更熟悉 c# 的人来说,这可能是一个简单的问题,但我真的不知道要搜索什么。我读了一个解释,但没有完全理解它。我也有兴趣知道“??”运算符是做什么的。一些关于它们在哪些方面有用的例子将有很大帮助。
答:
此 () 是 的简写。int?
Nullable<int>
评论
int?
表示可为空的整数:aux 可以有 int 值或为 null!!
它可以是任何 int 值加上一个额外的 null。查看更多信息 可以为 null 的类型
使用 Nullable int 的目的是,虽然经常使用数据库操作,但在某些情况下,某些值可能是 null,我们必须在代码中表达。例如,考虑以下架构
Employee
- id, bigint, not null
- name, nvarchar(100), null
- locationId, bigint, null
假设 employee 的 locationId 不可用,因此在数据库中 employee 的 locationid 值为 NULL。在 C# 方面,您知道不能有 NULL 值,因此添加了 type、Nullable int(和其他一些值),因此我们可以很容易地显示 locationId 没有值。int
评论
“?” 表示可为 null 的类型
正如许多其他人已经回答的那样,?表示可为 null 的类型。这意味着 int?除了整数值之外,还可以为 null 赋值。
当您想要区分尚未初始化的变量的大小写和已为其分配默认值的情况时,可以使用此选项。
例如,您可以考虑 bool 的情况。声明 bool 变量时,默认情况下该变量具有 false 值。这意味着,当它的值为 false 时,你无法判断这种情况的发生是因为有人为变量分配了该值,还是因为没有人碰过它。在这种情况下,布尔?很有用,因为它允许您将“真实”假值(由某些代码显式分配)与未初始化的情况区分开来。
上一个:将方法调用限制为另一个方法
评论
??