コード例 #1
0
        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
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: Anil1111/Education
        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();
        }
コード例 #3
0
 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);
 }
コード例 #4
0
ファイル: Chap3.cs プロジェクト: neveand/study
    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());
    }
コード例 #5
0
ファイル: Program.cs プロジェクト: cesser/CSharpProjects
        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);
        }
コード例 #6
0
        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();
        }
コード例 #7
0
    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);
    }
コード例 #8
0
        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}");
        }
コード例 #9
0
        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();
        }
コード例 #10
0
 public static string Title(this MyEnum val)
 {
     return(Enum.GetName(val.GetType(), val));
 }