1

私は列挙型を持っています:

[DataContract]
public enum Relationship
{
    Spouse = 4,
    ResidesWith = 1,
    Parent = 2,
    Other = 3,
    PersonalGuarantor = 5,
    CoApplicant = 6
}

ご覧のとおり、ゼロは定義されていません。ゼロは列挙型では決して定義されないという考えに基づいてプログラムを作成しました。これにより、さまざまなコンボボックスから設定されたものと、null 値に設定されたものを確認できます。null 値として 0 を設定した場合、これら 2 つのことを区別する方法はなく、区別できることが不可欠です。

デフォルト状態がないため、値をシリアル化しようとするとエラーが発生します。

値のない列挙型を xml でシリアル化してスキップする方法、またはこれらのエラーを回避する方法はありますか? デフォルト値を導入したくありません。

4

1 に答える 1

6

列挙値として 0 を使用する必要があります - 有効ではなく、チェックする値にします (既に行っているように)。

[DataContract]
public enum Relationship
{
    Invalid = 0,
    Spouse = 4,
    ResidesWith = 1,
    Parent = 2,
    Other = 3,
    PersonalGuarantor = 5,
    CoApplicant = 6
}

列挙型は整数型 (基本型) に基づいていることを忘れないでください。したがって、列挙型には常に値があり (値の型を null にすることはできません)、既定値は になります0。これを明示的にすると、コードベースの内容も明確になります。

ヒント:列挙型でもの値を使用できます。

于 2012-06-11T19:19:55.997 に答える