问号(?)在C#中的函数声明中的含义是什么

时间:2012-01-10 11:48:33

标签: c# syntax nullable

  

可能重复:
  What does “DateTime?” mean in C#?
  What does the ? mean after a type?

我有一个函数声明,在数据类型之后包含一个questionmark,如:

private TimeSpan? sometime()
{

}

这是什么意思?

5 个答案:

答案 0 :(得分:16)

TimeSpan?System.Nullable<TimeSpan>的简写。

TimeSpan是一种值类型,不能取null值。通过将其包裹在System.Nullable<>中,它可以是null。如果没有?,从函数返回null将是非法的。

答案 1 :(得分:4)

Nullable Structure

  

表示一个对象,其底层类型是可以的值类型   也可以像引用类型一样指定null。

您可以撰写Nullable<TimeSpan>

,而不是撰写TimeSpan?

答案 2 :(得分:2)

Nullable,值类型可以为null。

答案 3 :(得分:1)

这意味着值类型为nullable type

答案 4 :(得分:1)

基本上它是一个可以为空的TimeStamp。