Enum


using System;
using System.Collections.Generic;
using System.Linq;
using Member;

namespace EnumDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Student> studentList = new List<Student>();
            studentList.Add(new Student { Name = "Name01", Gender = GenderType.Male });
            studentList.Add(new Student { Name = "Name02", Gender = GenderType.Female });
            studentList.Add(new Student { Name = "Name03", Gender = GenderType.UnKnown });

            foreach (var item in studentList)
            {
                Console.WriteLine(Student.StudentInfo(item));
                Console.WriteLine();
            }

            Console.WriteLine("Enum to Int ========================================");
            Console.WriteLine($"Male : {(int)GenderType.Male} \n" +
                              $"Female : {(int)GenderType.Female} \n" +
                              $"UnKnown : {(int)GenderType.UnKnown} \n");

            Console.WriteLine("Int to Enum ========================================");
            GenderType Value0 = 0;   // When 0, you don't need cast keyword "(MagicType)"
            GenderType Value1 = (GenderType)1;
            GenderType Value2 = (GenderType)2;
            Console.WriteLine($"Value 0 = {Value0} \n" +
                              $"Value 1 = {Value1} \n" +
                              $"Value 2 = {Value2} \n");


            Console.WriteLine("(int[])Enum.GetValues(typeof(GenderType)) ========================");
            int[] GenderTypeValues = (int[])Enum.GetValues(typeof(GenderType));
            Console.WriteLine("GenderType Enum Values");
            foreach (int value in GenderTypeValues)
            {
                Console.WriteLine(value);
            }


            Console.WriteLine("Enum.GetNames(typeof(GenderType)) ========================");
            string[] GenderTypeNames = Enum.GetNames(typeof(GenderType));
            Console.WriteLine("GenderType Enum Names");
            foreach (string name in GenderTypeNames)
            {
                Console.WriteLine(name);
            }


            Console.ReadLine();
        }
    }
}

namespace Member
{
    public class Student
    {
        public string Name { get; set; }
        public GenderType Gender { get; set; }

        public static string StudentInfo(Student par)
        {
            return $"Name : {par.Name} \nGendert: {par.Gender}";
        }
    }
    /// <summary>
    /// 備註:
    /// enum 預設型態為 int,且僅能為「byte」「sbyte」「short」「ushort」「int」「uint」「long」「ulong」,每次加 1
    /// </summary>
    public enum GenderType   // : int
    {
        Male,  //0
        Female,//1
        UnKnown//2
    }
}

results matching ""

    No results matching ""