單問(wèn)號(hào)---用于給變量設(shè)初值的時(shí)候,給變量(int類型)賦值為null,而不是0!
雙問(wèn)號(hào)---用于判斷并賦值,先判斷當(dāng)前變量是否為null,如果是就可以賦一個(gè)新值,否則跳過(guò)!
public int? para = null;
//public int para;如果不注釋掉此行,而把上一行注釋掉的話,下面會(huì)報(bào)錯(cuò)!
public int par()
{
return this.para ?? 0;
} 如:
c#聲明變量加問(wèn)號(hào)(?)的區(qū)別 DateTime StartTime和DateTime? StartTime有什么區(qū)別?新的語(yǔ)法,可空值類型。
如Int32、結(jié)構(gòu)體等這樣的類型是不可能為空的,常見的如int,DateTime都是不可能為空的。所以在需要判斷是否有值的場(chǎng)合,可以用加問(wèn)號(hào)的可空值類型,如int?,DateTime?
這時(shí),可以為空(null),并且可以通過(guò)它的HasValue屬性來(lái)判斷是否有值,并通過(guò)Value屬性獲得真正的值。
它可以通過(guò)對(duì)包裝類型直接賦值的方式隱式創(chuàng)建,如:
int? a=32;
具體的,可以搜索“可空值類型”來(lái)了解更多信息。