我应该使用什么课程?
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开始,类别可以没有父类别。
答案 0 :(得分:3)
如果没有父母,你想要可以为空。
为了使您的代码更具可读性,您可以:
public class Category
{
public int Id {get;set;}
public int? IdParent {get;set;}
public string Title {get;set;}
}
(编辑:此外,类声明不应该有parens)
答案 1 :(得分:1)
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;}
}
答案 2 :(得分:1)
我不确定你要做什么,但是如果你想用它来插入自动增量,你可能也希望你的id也可以为空。
public class Category
{
public int? Id { get; set; }
public int? IdParent { get; set; }
public string Title { get; set; }
}
答案 3 :(得分:0)
我会使用第二个选项,因为它更好地传达了一个类别没有父级的事实。使用第一个选项,您需要使用魔术值来表示缺少父级。