先看示例:

static void Main(string[] args)
{
int? aa=null;
Console.WriteLine(aa ?? -1);
Console.Read();
}

这里定义了一个可空的整型aa,并给它赋值为null,然后输出。

     一个问号表示这个类型可以为null,2个问号表示这个类型如果为空的话,给此类型赋予问号后面的值.

类型后面加?的问题_windows
static void Main(string[] args)
{
int? aa=null;
int? bb = 1;
Console.WriteLine(aa ?? -1);
Console.WriteLine(bb ?? -1);
Console.Read();
}
类型后面加?的问题_windows

控制台输出-1,1。

     这个?实际上是泛型Nullable<T>   msdn解释有具体的应用。