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
}
}