コード例 #1
0
 public EnumType(TypeId typeId, string?documentation, EnumValue[] values, EnumTypeFlags flags)
     : this(typeId.ToString(), typeId, documentation, values, flags)
 {
 }
コード例 #2
0
 public EnumType(string name, TypeId typeId, string?documentation, EnumValue[] values, EnumTypeFlags flags)
 {
     toEnumValue   = new Dictionary <string, EnumValue>(values.Length, StringComparer.Ordinal);
     IsPublic      = (flags & EnumTypeFlags.Public) != 0;
     IsFlags       = (flags & EnumTypeFlags.Flags) != 0;
     TypeId        = typeId;
     RawName       = name;
     Documentation = documentation;
     this.values   = values;
     initialized   = (flags & EnumTypeFlags.NoInitialize) == 0;
     Initialize(values);
 }
コード例 #3
0
ファイル: EnumType.cs プロジェクト: 5l1v3r1/iced-1
 public EnumType(string name, TypeId typeId, string?documentation, EnumValue[] values, EnumTypeFlags flags)
 {
     toEnumValue   = new Dictionary <string, EnumValue>(values.Length, StringComparer.Ordinal);
     IsPublic      = (flags & EnumTypeFlags.Public) != 0;
     IsFlags       = (flags & EnumTypeFlags.Flags) != 0;
     TypeId        = typeId;
     RawName       = name;
     Documentation = documentation;
     Values        = values;
     if ((flags & EnumTypeFlags.NoInitialize) == 0)
     {
         if ((flags & EnumTypeFlags.Flags) != 0)
         {
             uint value = 0;
             for (int i = 0; i < values.Length; i++)
             {
                 if (values[i].RawName == "None")
                 {
                     values[i].Value = 0;
                 }
                 else
                 {
                     if (value == 0)
                     {
                         value = 1;
                     }
                     else if (value == 0x80000000)
                     {
                         throw new InvalidOperationException("Too many enum value");
                     }
                     else
                     {
                         value <<= 1;
                     }
                     values[i].Value = value;
                 }
             }
         }
         else
         {
             for (int i = 0; i < values.Length; i++)
             {
                 values[i].Value = (uint)i;
             }
         }
     }
     foreach (var value in values)
     {
         value.DeclaringType = this;
         toEnumValue.Add(value.RawName, value);
     }
 }