「?」是什麼意思?意思是在MVC中,當我們寫數據類型爲例如問題標記在MVC中意味着什麼?
public Grade? Grade { get; set; }
什麼是「?」節目嗎?如果我不寫「?」會有什麼不同? ?
「?」是什麼意思?意思是在MVC中,當我們寫數據類型爲例如問題標記在MVC中意味着什麼?
public Grade? Grade { get; set; }
什麼是「?」節目嗎?如果我不寫「?」會有什麼不同? ?
Grade?
與Nullable<Grade>
相同。這是一個C# language feature,不是特定於MVC。
如果你想使任何屬性爲空,那麼我們添加問號「?」
public Grade? Grade { get; set; }
- > Grade屬性也會接受空值。
public Grade Grade { get; set; }
- >允許該物業
在您的評論中提供的鏈接沒有空值,一級代表一個枚舉類型,是值類型。值類型不能指向null,所以它需要後綴?符號來表示空值。它本質上是相同的話說:
public Nullable<Grade> Grade { get; set; }
更多的例子:
int a = null; //not allowed
int b? = null; //allowed
string refType = null; //allowed
int x? = 2;
int y? = 2;
請記住,如果你嘗試對可空類型的操作時,操作員將被解除:
book areEqual = x == y;
它翻譯爲:
bool areEqual = (x.HasValue && y.HasValue) ? (x.Value == y.Value) : false;
這意味着可空類型可以使用原始值類型中的運算符。
?
表示可爲空的類型。可爲空的類型表示可以賦值爲null
的值類型變量。您不能基於引用類型創建nullable
類型,因爲引用類型已經支持null
。
從您的教程中提供的鏈接:
的高檔物業是一個枚舉。等級類型 聲明後的問號表示Grade屬性可以爲空。甲 級這null是從零級不同 - null表示一個檔次不 已知或尚未分配
所以,在相同的示例Enrollment
是引用類型,其,可爲空由默認。因此在聲明該類的對象時不需要明確的?
。
這是一個有效的可空的聲明。您可以指定null
它:
int? num = null;
你也可以做一個:
int y = num.GetValueOrDefault();
凡y
會得到什麼價值num
包含(如果它包含的值),否則null
這是默認爲空的類型。
您可以expicitly檢查它是否包含null
由:
num.HasValue();
你得到的值出可空的類型像這樣的變量:
int y = num.value;
可以爲空,它可以得到空值,你可以用'variable.HasValue'來檢查 – Abhitalks
幾個小時前我正在讀這個。它允許可爲空的類型,但如果Grade是一個類,我不明白爲什麼它需要有? operator – pcnThird
@pcnThird看到這個 http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an- asp-net-mvc-application 我正在執行本教程 – MSQ