Byte enum comparison in C#

Viewed 33092

Given this enum

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

why does this check always return false when usr.Status = 1

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

The comparison seems to work - there is no compile time error or runtime exception. Please note I am not the author of this piece of code and would like to find out why the author chose enum of type byte and why this doesn't work as it should.

3 Answers
Related