Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在运行时更改控制台应用程序的启动对象_C#_Console Application - Fatal编程技术网

C# 在运行时更改控制台应用程序的启动对象

C# 在运行时更改控制台应用程序的启动对象,c#,console-application,C#,Console Application,假设我在单独的文件中有几个不相关的类,每个类中都有一个main方法。目前,这个项目是一个控制台应用程序,我只是在IDE中更改了一个启动对象来运行各自的main,它从IDE中实例化了各自的类。出于好奇,在启动此exe之前,是否可以在运行时动态更改启动对象,以替代将此项目作为类库并重复我在其他地方的main中的代码 我认为这是不可能的。我已经有一段时间没有深入讨论细节了,但是如果我没记错的话,运行哪个“Main”的规范会被写入IL。这不是在运行时可以更改的 这个问题的传统解决方案是让“Main”方法

假设我在单独的文件中有几个不相关的类,每个类中都有一个main方法。目前,这个项目是一个控制台应用程序,我只是在IDE中更改了一个启动对象来运行各自的main,它从IDE中实例化了各自的类。出于好奇,在启动此exe之前,是否可以在运行时动态更改启动对象,以替代将此项目作为类库并重复我在其他地方的main中的代码

我认为这是不可能的。我已经有一段时间没有深入讨论细节了,但是如果我没记错的话,运行哪个“Main”的规范会被写入IL。这不是在运行时可以更改的

这个问题的传统解决方案是让“Main”方法解析命令行参数,然后运行适当的方法。我相信,通过正确重构,您可以最小化甚至消除重复代码