When defining enums, I define the first value as unspecified to have a compiler-save representation for example of a field or a variable:

public enum ValueValidationState

private field ValueValidationState _validationState;

void ValidateValue(string value)
    ValueValidationState validationState;
    if (...)
        validationState = ValueValidationState.CanBecomeValid;
    else if (//...

    return validationState;

Behind the scenes, the enum is an integer. Integers, like other primitive number-values, are initialized with 0. Without defining a first value for the enum, the first value (Unspecified) equals 0, leading to a valid initialized _validationState of ValueValidationState.Unspecified without assigning an explicit case. The IDE and/or compiler might warn about the use of an uninitialized field or variable, but I’m on the safe side with this. It also helps when using (de)serialization.