簡體   English   中英

可以為空還是默認值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM