在C#中,在visualstudio中,使用控制台应用程序,是否有方法在类中生成方法并使用readline在主程序中调用它们?
在C#中,在visualstudio中,使用控制台应用程序,是否有方法在类中生成方法并使用readline在主程序中调用它们在C#中,在visualstudio中,使用控制台应用程序,是否有方法在类中生成方法并使用readline在主程序中调用它们?,c#,visual-studio,C#,Visual Studio,在C#中,在visualstudio中,使用控制台应用程序,是否有方法在类中生成方法并使用readline在主程序中调用它们 Aka,一种在程序运行时选择打开哪些方法的方法 这在使用反射时是非常可能的。以下是帮助您解决问题的示例代码: class Program { public static void Hello1() { Console.WriteLine("\nHello 1"); } public static void Hello2(
Aka,一种在程序运行时选择打开哪些方法的方法 这在使用反射时是非常可能的。以下是帮助您解决问题的示例代码:
class Program
{
public static void Hello1()
{
Console.WriteLine("\nHello 1");
}
public static void Hello2()
{
Console.WriteLine("\nHello 2");
}
static void Main(string[] args)
{
while (true)
{
String method = Console.ReadLine();
Type methodType = typeof(Program);
MethodInfo voidMethodInfo = methodType.GetMethod(method);
voidMethodInfo.Invoke(method,null);
}
}
}
有关更多信息,您可以访问。最简单的方法是switch语句,因为这些选项很多。你的目标是完整的.net框架还是.net核心。不确定。这是一个控制台应用程序。因此,它只适用于小型学校的分配方法。尽可能地,我不推荐这种做法,因为它强制执行不自然的编码习惯。最好只使用
switch()
树或一些if
s,因为它还提供了更多的控制。
class Program
{
private static IDictionary<string, Action> MethodMappings = new Dictionary<string, Action> {
{"Method1", Method1},
{"Method2", Method2},
...
}
public static void Main(string[] args) {
var methodCall = Console.ReadLine();
if (!MethodMappings.ContainsKey(methodCall)) {
//unrecognized command
}
MethodMappings[methodCall].Invoke();
}
private static void Method1() { ... }
private static void Method2() { ... }
}