Also habe ich mich gefragt, ob es akzeptabel oder schlechte Praxis ist, sowohl Integer als auch Zeichentypen innerhalb eines Enum-Typs zu verwenden. Zum Beispiel arbeite ich zur Zeit mit einem System zur Zahlungsabwicklung. Sie können unsere Soap-Anfrage aufrufen und IDs für Zahlungsarten zwischen 1 und 25 senden und auch Zeichen wie C, M und O senden. Ich wollte eine Eindeutigkeit beim Lesen des Codes verwenden, aber ein Problem, das ich habe ist, dass ich auch einen Schalter dafür verklagen wollte. Ist das eine schlechte Übung im Umgang damit, kann ich das auch sicher in einem Switch handhaben oder sollte ich einfach ein if else machen, und versuche pars für den Umgang mit falschem Casting?Verwenden von Enum-Werten mit Chars und Integer-Typen in einer Switch-Anweisung in C#
Beispiel für Enum-Werte wäre die folgende:
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',
}
Warum haben Sie Bedenken, eine switch-Anweisung zu verwenden? Sie können entweder die Bezeichnung oder den Wert der Aufzählung verwenden. – ryanyuyu
Dies kann zu kleinen Fehlern führen, wenn man '(PaymentTypeEnum) 9' statt' (PaymentTypeEnum) '9'' verwendet. Ich würde bevorzugen, eine Nachschlage-Methode oder ein Wörterbuch zu definieren, das den Typ "char" explizit macht. – Douglas
Wie würde das mit einer Zahlungstyp-ID von 25 funktionieren? –