0

GP Web サービスで Customer を作成しようとしていますが、Customer クラスの BalanceType プロパティに遭遇しましたが、その値を設定する方法がわかりません。値が 0 または 1 の整数であると予想していましたが、「型 'int' を [...].BalanceType に暗黙的に変換できません」というメッセージが表示されます。

これがその定義です。問題は、一般的には C# と .NET、特に列挙型の経験が不足していることだと思います。

public enum BalanceType : int {

    [System.Runtime.Serialization.EnumMemberAttribute(Value="Open Item")]
    OpenItem = 0,

    [System.Runtime.Serialization.EnumMemberAttribute(Value="Balance Forward")]
    BalanceForward = 1,
}

私のコードには、プロパティを持つクラスがあります

public int balanceType

メソッドの後半では、_customer が渡されたパラメーター オブジェクトで、customerObj が Web サービス クラス オブジェクトです。

customerObj.BalanceType = _customer.balanceType;

あなたの時間と頭脳に感謝します。

4

1 に答える 1

1

列挙型は、値を持つ名前付き定数を定義する便利な方法を提供します。この場合、OpenItem = 0 および BalanceForward = 1 です。

次のように Enum を設定します。

customerObj.BalanceType = BalanceType.OpenItem;

コード内のプロパティを次のように BalanceType にも変更します。

public BalanceType balanceType;

そうすれば、整数と列挙型の間でキャストする必要がなくなります。簡単に設定できます:

customerObj.BalanceType = balanceType;

整数から列挙型にキャストする必要がある場合は、この関連する質問を参照してください。

于 2013-05-14T13:40:51.353 に答える