Зачем перебирать перечисление, возвращая дубликаты ключей?
Сейчас я работаю над некоторыми вещами, касающимися реестра.
Я проверил перечислениеRegistryRights
в .System.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,
}
Это перечисление является побитовым, и я знаю, что перечисления могут содержать повторяющиеся значения. Я пытался перебрать перечисление по этому коду:
foreach (System.Security.AccessControl.RegistryRights regItem in Enum.GetValues(typeof(System.Security.AccessControl.RegistryRights)))
{
System.Diagnostics.Debug.WriteLine(regItem.ToString() + " " + ((int)regItem).ToString());
}
также Enum.GetName (typeof (RegistryRights), regItem) возвращает одно и то же имя ключа.
и вывод, который я получил:
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
Может кто-нибудь, пожалуйста, скажите мнеЗачем получить дубликаты ключей? ("ReadKey» вместо "ExecuteKey ")Как я могу заставить его привести int ко второму ключу значения? а почему ToString не возвращает реальное значение ключа?