[英]Nullable or default value?
我應該使用什么課程?
public class Category
{
public int Id {get;set;}
public int IdParent {get;set;}
public string Title {get;set;}
}
or
public class Category
{
public int Id {get;set;}
public Nullable<int> IdParent {get;set;}
public string Title {get;set;}
}
考慮到自動遞增從1開始,並且類別可以沒有父類別。
如果可以沒有父母,則希望為空。
為了使代碼更具可讀性,您可以執行以下操作:
public class Category
{
public int Id {get;set;}
public int? IdParent {get;set;}
public string Title {get;set;}
}
(編輯:此外,類聲明不應有括號)
Nullable<int>
傳達的意圖比使用默認值要好得多,因此我肯定會使用它而不是檢查零。 它還會要求檢查是否為空,而如果使用默認值,則可能會忘記進行檢查。
如果您確實決定使用零作為“無父”,則應為其定義一個命名常量:
public class Category
{
public const int NoParent = 0;
public int Id {get;set;}
public int IdParent {get;set;}
public string Title {get;set;}
}
我不確定您要做什么,但是如果您想使用此值以自動增量插入,您可能還希望ID也可以為空。
public class Category
{
public int? Id { get; set; }
public int? IdParent { get; set; }
public string Title { get; set; }
}
我將使用第二個選項,因為它可以更好地傳達類別可以沒有父項的事實。 對於第一個選項,您需要使用魔術值來指示缺少的父對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.