Dlaczego powtarzasz duplikaty kluczy enum?

Pracuję teraz nad niektórymi sprawami dotyczącymi rejestru.

Sprawdziłem enumRegistryRights wSystem.Security.AccessControl.

public enum RegistryRights
{
    QueryValues = 1,
    SetValue = 2,
    CreateSubKey = 4,
    EnumerateSubKeys = 8,
    Notify = 16,
    CreateLink = 32,
    Delete = 65536,
    ReadPermissions = 131072,
    WriteKey = 131078,
    ExecuteKey = 131097,
    ReadKey = 131097,
    ChangePermissions = 262144,
    TakeOwnership = 524288,
    FullControl = 983103,
}

To wyliczenie jest bitowe, a wiem, że wyliczenia mogą zawierać zduplikowane wartości. Próbowałem iterować enum po tym kodzie:

 foreach (System.Security.AccessControl.RegistryRights regItem in Enum.GetValues(typeof(System.Security.AccessControl.RegistryRights)))
        {
            System.Diagnostics.Debug.WriteLine(regItem.ToString() + "  " + ((int)regItem).ToString());
        }

również Enum.GetName (typeof (RegistryRights), regItem) zwraca tę samą nazwę klucza.

a wyjście jakie otrzymałem to:


QueryValues  1
SetValue  2
CreateSubKey  4
EnumerateSubKeys  8
Notify  16
CreateLink  32
Delete  65536
ReadPermissions  131072
WriteKey  131078
<strong>ReadKey  131097
ReadKey  131097</strong>
ChangePermissions  262144
TakeOwnership  524288
FullControl  983103

Czy ktoś może mi powiedzieć?czemu czy mam duplikaty kluczy? („ReadKey” zamiast „ExecuteKey”)W jaki sposób Czy mogę zmusić go do oddania int do drugiego klucza wartości? i dlaczego ToString nie zwraca rzeczywistej wartości klucza?

questionAnswers(2)

yourAnswerToTheQuestion