public static void Main() { var result = new List <int> { 1, 4, 14 }; for (int i = 0; i < result.Count; i++) { Console.WriteLine(result[i]); } var valuesAsList = Enum.GetValues(typeof(Category)).Cast <Category>().ToList(); for (int i = 0; i < valuesAsList.Count; i++) { Console.WriteLine("Result: {0} {1}", i + 1, valuesAsList[i]); } MyEnum e = MyEnum.C; int index = Array.IndexOf(Enum.GetValues(e.GetType()), e); // index is 2 MyEnum f = (MyEnum)(Enum.GetValues(e.GetType())).GetValue(index); // f is E.C }
static void Main(string[] args) { MyEnum digit = MyEnum.Ten; Type @enum = digit.GetType(); Console.Write($"1. Перечесление {@enum.Name} состоит из элементов типа: "); //Enum.GetUnderlyingType() - возвращает тип, который используется для представления // числовых значений элементов перечисления.(короче то, что по умолчанию int, но мы можем его указать). //(в даннном случае @const) Type @const = Enum.GetUnderlyingType(@enum); Console.WriteLine(@const); //Способ 2. //оператор typeof - возврщает экземпляра класса System.Type, который содержит информация // о том типе, который был передаен в качестве аргумента данного оператора. Console.Write($"2. Перечисление MyEnum состоит из элементов типа: "); Console.WriteLine(Enum.GetUnderlyingType(typeof(MyEnum))); //Итог: GetType(); и typeof(MyEnum) - это эквивалентные конструкции. // GetType() используется когда есть экземпляр класса и мы вызываем этот метод на этом экземпляре. // typeof(MyEnum) используется, когда экзмпляра класса нету, но мы знаем название класса и передаем его в typeof() var a = digit.GetType(); var b = typeof(MyEnum); //Delay Console.ReadKey(); }
public static string ToDescriptionString(this MyEnum val) { DescriptionAttribute[] attributes = (DescriptionAttribute[])val .GetType() .GetField(val.ToString()) .GetCustomAttributes(typeof(DescriptionAttribute), false); return(attributes.Length > 0 ? attributes[0].Description : string.Empty); }
static void EnumTest() { MyEnum e = MyEnum.Farther; Console.WriteLine("Enum value : {0}", e.ToString()); Console.WriteLine("Underlying Enum : {0}", Enum.GetUnderlyingType(e.GetType())); Array enumData = Enum.GetValues(e.GetType()); for (int i = 0; i < enumData.Length; ++i) { object o = enumData.GetValue(i); int value = (int)o; Console.WriteLine("{0} = {1:D}", o.ToString(), value); } int value18 = 18; Console.WriteLine("int.ToString() = {0}", value18.ToString()); }
private static void TestValueType() { Console.WriteLine(Activator.CreateInstance(typeof(double))); Console.WriteLine(typeof(UInt16).IsValueType); Console.WriteLine(typeof(string).IsValueType); Console.WriteLine(typeof(MyEnum).IsValueType); MyEnum one = MyEnum.One; Console.WriteLine(one.GetType().IsValueType); }
static void Main(string[] args) { Console.WriteLine(new string('_', 50)); DateTime data = new DateTime(2020, 2, 13); DateTime today = DateTime.Now; TimeSpan left = data - today; Console.WriteLine("до мой днем раждения осталось {0} день", left.Days); Console.WriteLine("до мой днем раждения осталось {0} час", left.TotalHours); Console.WriteLine(new string('_', 50)); MyEnum my = MyEnum.one; Console.WriteLine("{0}-{1}", my, (int)my); Console.WriteLine(new string('_', 10)); Type typemy = my.GetType(); //1 Console.WriteLine(typemy); Type typemy1 = Enum.GetUnderlyingType(typemy); //2 //...enumi tareri typ@ Console.WriteLine(typemy1); Console.WriteLine(Enum.GetUnderlyingType(typeof(MyEnum))); //3=2 Console.WriteLine(typeof(MyEnum)); //4=1 Console.WriteLine(my.ToString()); Console.WriteLine(Enum.Format(typeof(MyEnum), MyEnum.one, "X")); Console.WriteLine(Enum.Format(typeof(MyEnum), MyEnum.one, "D")); Console.WriteLine(Enum.Format(typeof(MyEnum), 2, "G")); Console.WriteLine(new string('_', 10)); for (MyEnum number = MyEnum.zero; number <= MyEnum.tree; number++) { Console.WriteLine("{0}-{1}", number, (int)number); } Console.WriteLine(new string('_', 50)); Array array = Enum.GetValues(typeof(MyEnum)); /// enum-i tarer@ qcum enq zangvaci mej Console.WriteLine("Array Lenght equal -{0}", array.Length); for (int i = 0; i < array.Length; i++) { Console.WriteLine("name const {0} a value {0:D}", array.GetValue(i)); } Console.ReadKey(); }
public static int Num(this MyEnum val) { int n = 0; FieldInfo fi = val.GetType().GetField(val.ToString()); TestAttribute[] attrs = fi.GetCustomAttributes(typeof(TestAttribute), false) as TestAttribute[]; if (attrs.Length > 0) { n = attrs[0].Num; } return(n); }
private static void TestMyEnum() { Console.WriteLine(MethodBase.GetCurrentMethod().Name); MyEnum foo = default; var resA1 = foo.GetAnnotation <MyEnum>(); var resA2 = MyEnum.Value1.GetAnnotation <MyEnum>(); var resA3 = foo.GetAnnotation <MyEnum>("Value2"); Console.WriteLine($"{nameof(resA1)}: {resA1}"); Console.WriteLine($"{nameof(resA2)}: {resA2}"); Console.WriteLine($"{nameof(resA3)}: {resA3}"); var resB1 = typeof(MyEnum).GetAnnotation(); var resB2 = foo.GetType().GetAnnotation(); var resB3 = typeof(MyEnum).GetAnnotation("Value3"); var resB4 = foo.GetType().GetAnnotation("Value1"); Console.WriteLine($"{nameof(resB1)}: {resB1}"); Console.WriteLine($"{nameof(resB2)}: {resB2}"); Console.WriteLine($"{nameof(resB3)}: {resB3}"); Console.WriteLine($"{nameof(resB4)}: {resB4}"); }
static void Main(string[] args) { MyEnum digit = MyEnum.Teeeeeeeeeeen; Console.WriteLine($"Число {digit.ToString()}"); //Enum.Format() - позволяет производить более точное форматирование за счет указания флага, //а так же получать имена элементов перечисления по их числовым значениям //Вывод в 16-ричном формате. Флаг "х" - hex (16-ричный формат) Console.WriteLine($"Hex значение {Enum.Format(typeof(MyEnum),MyEnum.Teeeeeeeeeeen,"x")}"); //Вывод в 10-ричном формате. Флаг "D" - dec (10-ричный формат) // вместо typeof(MyEnum) использую digit.GetType() Console.WriteLine($"Dec значение {Enum.Format(digit.GetType(), digit, "D")}"); //Вывод в строковом формате. Флаг "G" - str (Строковой формат) Console.WriteLine($"Str значение {Enum.Format(typeof(MyEnum), 10, "G")}"); //Delay Console.ReadKey(); }
public static string Title(this MyEnum val) { return(Enum.GetName(val.GetType(), val)); }