直接將字串轉為對應列舉值,支援忽略大小寫:
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 判斷。
依方法名稱字串動態建立委派實例:
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。