控制台应用程序的多个重载方法,main 有一个入口点。需要解决
multiple overload methods for console app, main has one entry point. need work around
我正在尝试编写一个具有多种方法的控制台应用程序(希望我的术语是正确的,这是新的),所以我可以使用 3 个参数(字符串、字符串、整数)和/或两个参数(字符串诠释)。我打算写两个方法...但是 Main 只能有一个入口点。那么我怎样才能使这项工作呢?想知道是否有人知道解决此问题的技术,也许是我可以效仿的最佳实践。
目前,按照您描述的方式,这是不可能的。
但是,您可以尝试一些解决方法。您可以使用一个带有 string[]
作为参数的主方法,然后自己进行解析,根据您收到的参数调用正确的方法(这对于您描述的非常简单的情况很好,但不推荐对于更复杂的情况),或者您可以让图书馆为您完成艰苦的工作。
我建议尝试 System.CommandLine
来处理更复杂的情况,因为它会为您处理解析逻辑并调用您的方法,这可能是您最接近实际情况的方法之后。
Main 方法(入口点)有一个 string[]
类型的参数(字符串数组)。
您可以根据需要传递任意数量的参数。例如,如果你想传递三个参数,你可以这样做
C:\ConsoleApplication1 arg1 arg2 arg3
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
if(args.Length == 3)
{
//process your three parameters
var parameter1 = args[0];
var parameter2 = args[1];
var parameter3 = args[2];
}
else
{
//process for example 2 parameters
}
}
}
}
出于调试目的,您可以在调试选项卡中定义参数,如图所示。
我正在尝试编写一个具有多种方法的控制台应用程序(希望我的术语是正确的,这是新的),所以我可以使用 3 个参数(字符串、字符串、整数)和/或两个参数(字符串诠释)。我打算写两个方法...但是 Main 只能有一个入口点。那么我怎样才能使这项工作呢?想知道是否有人知道解决此问题的技术,也许是我可以效仿的最佳实践。
目前,按照您描述的方式,这是不可能的。
但是,您可以尝试一些解决方法。您可以使用一个带有 string[]
作为参数的主方法,然后自己进行解析,根据您收到的参数调用正确的方法(这对于您描述的非常简单的情况很好,但不推荐对于更复杂的情况),或者您可以让图书馆为您完成艰苦的工作。
我建议尝试 System.CommandLine
来处理更复杂的情况,因为它会为您处理解析逻辑并调用您的方法,这可能是您最接近实际情况的方法之后。
Main 方法(入口点)有一个 string[]
类型的参数(字符串数组)。
您可以根据需要传递任意数量的参数。例如,如果你想传递三个参数,你可以这样做
C:\ConsoleApplication1 arg1 arg2 arg3
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
if(args.Length == 3)
{
//process your three parameters
var parameter1 = args[0];
var parameter2 = args[1];
var parameter3 = args[2];
}
else
{
//process for example 2 parameters
}
}
}
}
出于调试目的,您可以在调试选项卡中定义参数,如图所示。