Enum型で整数型と文字型の両方を使用することが許容されるかどうかは疑問でした。たとえば、私は現在支払い処理ベンダーシステムを使用しています。彼らは私たちの石鹸の要求を呼び出すことができ、1から25までの支払いタイプのIDを送ることができ、C、M、Oなどの文字を送信することもできます。コードを読みやすくするためにenumを使用したいと思います。私もこのためのスイッチを訴えたかったということです。これを処理するのは悪い習慣ですか?これをスイッチで安全に処理することはできますか?そうでない場合はどうしたらいいですか?列挙型の値のC#のswitch文にCharsと整数型の列挙型の値を使用する
例は以下のようになります。
internal enum PaymentTypeEnum
{
/// <summary>
/// Payment Type Id via Phone from ACI. Note: Int32
/// </summary>
PhonePayment_IVR = '9',
/// <summary>
/// Payment Type Id via electronic from ACI. Note: Int32
/// </summary>
eCollectPayment = '5',
/// <summary>
/// Payment Type Id for CANCEL payment. Note: Char
/// </summary>
CancelPayment = 'C',
}
なぜswitch文を使用することに懸念がありますか?ラベルまたは列挙型の値を使用できます。 – ryanyuyu
'(PaymentTypeEnum) '9'の代わりに'(PaymentTypeEnum)9'を使用すると微妙なバグが発生する可能性があります。 'char'型を明示的にするルックアップメソッドや辞書の定義を好むでしょう。 – Douglas
これは、支払いタイプIDが「25」の場合、どのように機能しますか? –