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

本文关键字:函数 是什么 意思 声明 问号 | 更新日期: 2023-09-27 18:19:49

可能重复:
什么是“日期时间”C#中的平均值
什么是?意思是在打字之后?

我有一个函数声明,在数据类型后面有一个问号,比如:

private TimeSpan? sometime()
{
}

这是什么意思?

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

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

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

可为空的结构

表示一个对象,其基础类型是可以也可以像引用类型一样指定null。

您可以编写TimeSpan?,而不是编写Nullable<TimeSpan>

可以为null,值类型可以为null。

这意味着值类型是一个可为null的类型

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