首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 實用但易被遺忘的特性與技巧 (一) 列舉解析與動態委派建立

     編輯:關於C語言

Enum.Parse:字串轉列舉值

直接將字串轉為對應列舉值,支援忽略大小寫:

enum WeekDay { Sun, Mon, Tue, Wed, Thu, Fri, Sat }
static void Main()
{
    Console.WriteLine("輸入星期名稱:");
    string name = Console.ReadLine();
    object obj = Enum.Parse(typeof(WeekDay), name, true);
    Console.WriteLine("輸出星期數值:");
    Console.WriteLine(obj + ":" + (int)obj);
}

輸入 "mon" 輸出 "Mon:1"。避免撰寫冗長的 switch 判斷。

Delegate.CreateDelegate:動態建立委派

依方法名稱字串動態建立委派實例:

class Person
{
    public void FirstMethod() => Console.WriteLine("第一個方法!");
    public void SecondMethod() => Console.WriteLine("第二個方法!");
}
delegate void Dele();

static void Main()
{
    Person p = new Person();
    Console.WriteLine("輸入方法名稱:");
    string name = Console.ReadLine();
    Dele d = Delegate.CreateDelegate(typeof(Dele), p, name + "Method", true) as Dele;
    d.Invoke();
}

輸入 "First" 呼叫 FirstMethod,輸入 "Second" 呼叫 SecondMethod。實現依字串動態調用方法,無需 switch。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved