在C#中,可以使用字典(Dictionary)或者委托(Delegate)来实现switch语句的动态化。以下是使用字典的方法:
using System; using System.Collections.Generic; class Program { static void Main() { DictionaryswitchCases = new Dictionary { { "case1", () => Console.WriteLine("Case 1") }, { "case2", () => Console.WriteLine("Case 2") }, { "case3", () => Console.WriteLine("Case 3") } }; string userInput = "case2"; if (switchCases.ContainsKey(userInput)) { switchCases[userInput].Invoke(); } else { Console.WriteLine("Invalid case"); } } }
另一种方法是使用委托来实现动态化的switch语句,如下所示:
using System; class Program { delegate void CaseHandler(); static void Main() { string userInput = "case2"; CaseHandler switchCase = null; switch (userInput) { case "case1": switchCase = Case1; break; case "case2": switchCase = Case2; break; case "case3": switchCase = Case3; break; default: Console.WriteLine("Invalid case"); break; } switchCase?.Invoke(); } static void Case1() { Console.WriteLine("Case 1"); } static void Case2() { Console.WriteLine("Case 2"); } static void Case3() { Console.WriteLine("Case 3"); } }
以上两种方法都可以实现动态化的switch语句,具体选择哪种取决于个人偏好和实际情况。