C#语言中值类型(int、float等)后面加问号(int?、float?)代表什么?

示例:

public float? SteerRate;

public float? SteerTarget;

public double? TimeStampSec;

值类型后面加"?"表示可为null(Nullable结构),Nullable是.NET 2.0中新提供的一种用于标明一个值类型是否可以为空的技术。

对于一个类型来说,如果既可以赋值,也可以分配空引用null,我们就可以说这个类型是可空的。

例如示例中的,SteerRate、SteerTarget、TimeStampSec都是可空类型,它们可以表示一个值,也可以表示不存在任何值。

示例中的代码等同于:

public Nullable<float> SteerRate;

public Nullable<float> SteerTarget;

public Nullable<double> TimeStampSec;

设置值:

SteerRate=Value;

获取值:

SteerRate.Value;

判断是否为空:

if(SteerRate.HasValue)
{
	i=SteerRate.Value;
}
else
{
	i=0;
}

你可能感兴趣的:(C#,c#)