Byte-enum-Vergleich in C#

Angesichts dieser enum -

public enum UserStatus : byte
{
    Approved = 1,
    Locked = 2,
    Expire = 3
}

warum wird diese überprüfung immer false zurück, wenn usr.Status = 1

if(usr.Status.Equals(UserStatus.Approved))
    return true;
return false;

Vergleich scheint zu funktionieren - es gibt keine compile-Zeit-Fehler oder Laufzeit-exception. Bitte beachten ich bin nicht der Autor von diesem Stück code, und würde gerne herausfinden, warum der Autor wählte enum-Typ byte - und warum das nicht funktioniert wie es sollte.

Re "kein Fehler"; da man sich mit dem boxed-version, fast alles, was legal ist. Wenn, jedoch, verwenden Sie die mehr-entsprechende ==, wird es Ihnen sagen: Error [number] Operator '==' cannot be applied to operands of type 'byte' and 'UserStatus'

InformationsquelleAutor mare | 2011-07-06

Schreibe einen Kommentar