可为空或默认值?
问题描述:
我应该使用什么类?可为空或默认值?
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; }
}
只取决于你,你如何处理你没有价值的地方。您将执行类似if!= null的操作,或者如果!= defaultValue。只需使用您想要的 – 2012-08-16 13:33:18
IdPparent可以为NULL吗?在那种情况下,使用Nullable!尝试更详细地描述您的问题,以便我们可以帮助您! – Haris 2012-08-16 13:33:46