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

親なしでできる場合は、nullable が必要です。

コードを読みやすくするには、次のようにします。

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>、デフォルト値を使用するよりもはるかに意図を伝えるため、ゼロをチェックする代わりに間違いなく使用します。また、null かどうかのチェックも必要になりますが、デフォルト値を使用している場合はチェックを忘れる可能性があります。

「親なし」としてゼロを使用することにした場合は、名前付き定数を定義する必要があります。

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 も nullable にする必要があります。

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

カテゴリが親を持つことができないという事実をよりよく伝えるため、2 番目のオプションを使用します。最初のオプションでは、親が見つからないことを示すためにマジック値を使用する必要があります。

于 2012-08-16T13:32:44.877 に答える