Csharp/CSharp Tutorial/Data Type/System.Enum

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Enum elements compare

using System;
enum EmployeeType : byte 
{
  Manager = 10,
  Programmer = 1,
  Contractor = 100,
  Developer = 9
}
class MainClass
{
  public static void Main(string[] args)
  {
    EmployeeType Joe = EmployeeType.Developer;
    EmployeeType Fran = EmployeeType.Programmer;
    if(Joe < Fran)
      Console.WriteLine("Joe"s value is less than Fran"s");
    else
      Console.WriteLine("Fran"s value is less than Joe"s");
  }
}
Fran"s value is less than Joe"s

Enum.IsDefined()

using System;
enum EmployeeType : byte 
{
  Manager = 10,
  Programmer = 1,
  Contractor = 100,
  Developer = 9
}
class MainClass
{
  public static void Main(string[] args)
  {
    if(Enum.IsDefined(typeof(EmployeeType), "SalesPerson"))
      Console.WriteLine("Yep, we have sales people.");
    else
      Console.WriteLine("No, we have no profits....");
  }
}
No, we have no profits....

Get all stats for an enum: Enum.GetValues()

using System;
enum EmployeeType : byte 
{
  Manager = 10,
  Programmer = 1,
  Contractor = 100,
  Developer = 9
}
class MainClass
{
  public static void Main(string[] args)
  {
    Array obj = Enum.GetValues(typeof(EmployeeType));
    Console.WriteLine("This enum has {0} members:", obj.Length);
  }
}
This enum has 4 members:

Get an enum"s type, hex and value: Enum.Format()

using System;
enum EmployeeType : byte 
{
  Manager = 10,
  Programmer = 1,
  Contractor = 100,
  Developer = 9
}
class MainClass
{
  public static void Main(string[] args)
  {
    
    EmployeeType fred;
    fred = EmployeeType.Developer;
    
    Console.WriteLine("You are a {0}", fred.ToString());
    Console.WriteLine("Hex value is {0}", Enum.Format(typeof(EmployeeType), fred, "x"));
    Console.WriteLine("Int value is {0}", Enum.Format(typeof(EmployeeType), fred, "D"));
  }
}
You are a Developer
Hex value is 09
Int value is 9

Get underlying type of an enum: Enum.GetUnderlyingType()

using System;
enum EmployeeType : byte 
{
  Manager = 10,
  Programmer = 1,
  Contractor = 100,
  Developer = 9
}
class MainClass
{
  public static void Main(string[] args)
  {
    
    Console.WriteLine(Enum.GetUnderlyingType(typeof(EmployeeType)));
  }
}
System.Byte

Loop through an enum data type

using System;
enum EmployeeType : byte 
{
  Manager = 10,
  Programmer = 1,
  Contractor = 100,
  Developer = 9
}
class MainClass
{
  public static void Main(string[] args)
  {
    Array obj = Enum.GetValues(typeof(EmployeeType));
    foreach(EmployeeType e in obj)
    {
      Console.Write("String name: {0}", Enum.Format(typeof(EmployeeType), e, "G"));
      Console.Write(" ({0})", Enum.Format(typeof(EmployeeType), e, "D"));
      Console.Write(" hex: {0}\n", Enum.Format(typeof(EmployeeType), e, "X"));
      Console.WriteLine();
    }
  }
}
String name: Programmer (1) hex: 01
String name: Developer (9) hex: 09
String name: Manager (10) hex: 0A
String name: Contractor (100) hex: 64

Parse a string to an enum: Enum.Parse

using System;
enum EmployeeType : byte 
{
  Manager = 10,
  Programmer = 1,
  Contractor = 100,
  Developer = 9
}
class MainClass
{
  public static void Main(string[] args)
  {
    
    EmployeeType sally = (EmployeeType)Enum.Parse(typeof(EmployeeType), "Manager");
    Console.WriteLine("Sally is a {0}", sally.ToString());
  }
}
Sally is a Manager

The System.Enum Type: enum value from a string, ignore case

using System;
enum Color
{
    red,
    green,
    yellow
}
public class MainClass
{
    public static void Main()
    {
        Color c = Color.red;
        
        // 
        c = (Color) Enum.Parse(typeof(Color), "Red", true);
        Console.WriteLine("string value is: {0}", c);
        
    }
}
string value is: red

The System.Enum Type: GetNames

using System;
enum Color
{
    red,
    green,
    yellow
}
public class MainClass
{
    public static void Main()
    {
        Color c = Color.red;
        
        foreach (string s in Enum.GetNames(c.GetType()))
        {
            Console.WriteLine("Name: {0}", s);
        }
        
    }
}
Name: red
Name: green
Name: yellow

The System.Enum Type: GetValues, GetName and GetType

using System;
enum Color
{
    red,
    green,
    yellow
}
public class MainClass
{
    public static void Main()
    {
        Color c = Color.red;
        
        // enum values and names
        foreach (int i in Enum.GetValues(c.GetType()))
        {
            Console.WriteLine("Value: {0} ({1})", i, Enum.GetName(c.GetType(), i));
        }
        
    }
}
Value: 0 (red)
Value: 1 (green)
Value: 2 (yellow)

The System.Enum Type: see if a specific value is a defined enum member

using System;
enum Color
{
    red,
    green,
    yellow
}
public class MainClass
{
    public static void Main()
    {
        
        
        bool defined = Enum.IsDefined(typeof(Color), 5);
        Console.WriteLine("5 is a defined value for Color: {0}", defined);    
        
    }
}
5 is a defined value for Color: False