1

我应该使用什么类?

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 开始,并且类别可以没有父类别。

4

4 回答 4

3

如果它可以没有父母,你想要为空。

为了使您的代码更具可读性,您可以执行以下操作:

public class Category
{
    public int Id {get;set;}
    public int? IdParent {get;set;}
    public string Title {get;set;}
}

(编辑:另外,类声明不应该有括号)

于 2012-08-16T13:32:47.813 回答
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;}
}
于 2012-08-16T13:33:30.763 回答
1

我不确定您要做什么,但是如果您想使用它来插入自动增量,您可能希望您的 id 也可以为空。

public class Category
{
    public int? Id { get; set; }
    public int? IdParent { get; set; }
    public string Title { get; set; }
}
于 2012-08-16T13:34:35.650 回答
0

我会使用第二个选项,因为它更好地传达了一个类别可以没有父级的事实。对于第一个选项,您需要使用一个神奇的值来指示缺少父级。

于 2012-08-16T13:32:44.877 回答