C#语法问题

时间:2011-09-06 06:20:04

标签: c# syntax

  

可能重复:
  ? (nullable) operator in C#

是什么?像这样使用:

class Test
{
    public int? aux;
}

对于熟悉c#的人来说这可能是一个简单的问题,但我真的不知道要搜索什么。我读了一个解释但没有完全理解它。我也有兴趣知道“??”运营商。关于它们有用的一些例子会有很大的帮助。

5 个答案:

答案 0 :(得分:5)

int?)是Nullable<int>的缩写。

答案 1 :(得分:3)

它可以是任何int值加上额外的 null 。查看更多信息Nullable Types

使用Nullable int的目的是经常使用数据库操作,有些条件可能是某些值可能为null,我们必须在代码中表达。例如,考虑下面的模式

Employee

 - id,  bigint, not null
 - name,  nvarchar(100), null
 - locationId,  bigint, null

假设员工的locationId不可用,因此在数据库中,employee的locationid值为NULL。在C#方面,您知道int不能有NULL值,因此添加了类型Nullable int(以及其他几个),因此我们可以很容易地显示locationId没有值。

答案 2 :(得分:2)

“?”表示nullable type

答案 3 :(得分:1)

int?表示可以为null的整数:aux可以有一个int值或者为null !!

答案 4 :(得分:1)

正如其他许多人已经回答的那样,?表示可以为空的类型。这意味着int类型的变量?除了整数值之外,还可以指定null。
当您想要将尚未初始化的变量的情况与已为其分配默认值的情况区分开来时使用。
例如你可以考虑bool的情况。声明bool变量时,默认情况下它具有false值。这意味着当它的值为false时,您无法判断是否发生了这种情况,因为有人已经为变量分配了值,因为没有人触及它。在这种情况下一个布尔?是有用的,因为它允许您区分“真正的”错误值(由某些代码明确指定)与未初始化的情况。