c# - c#中的同一个类中是否可以有多个具有不同声明的Main方法
问题描述
我们知道Main方法是程序的入口点,如果我们指定方法的编译器StartupObject,我们可以在不同的类中使用多个 Main 方法。如果我们在同一个类中有多个具有不同声明的 Main 方法会怎样?我们可以在方法级别指定编译器吗?
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Test");
}
static void Main()
{
Console.WriteLine("Test 1");
}
}
}
更新:输出是错误 CS0017 程序定义了多个入口点。我的主要疑问是我们是否可以在方法级别指定 StartupObject 或是否存在任何其他属性来执行此操作。?
谢谢
解决方案
您可以定义多个类型,每个类型都有一个Main
方法,并且您可以使用编译标志指定将这些类型中的哪些类型视为入口点/main
。
据我所知,您不能Main
在一种类型中拥有两种不同的重载方法并告诉编译器使用哪种方法。如果目标是让一个Main
接受输入参数和一个无参数,一种解决方法可能是使用params
关键字来有效地使参数成为可选参数。
class Program
{
static void Main(params string[] args)
{
if (args.Length > 0)
{
Console.WriteLine("Test");
}
else
{
Console.WriteLine("Test 1");
}
}
}
推荐阅读
- json - 在flutter中使用json_serializable对json对象进行反序列化
- amazon-web-services - boto3 copy vs copy_object 关于 s3 中的文件权限 ACL
- c# - WebApi2 中所有类型异常的全局异常处理程序
- javascript - 如何在 puppeteer 中导航 dom 元素?
- mongodb - 将元素数组更改为字段 mongodb
- html - 提交按钮 - 任何方式来传递隐藏的元素数据?
- c# - Range.AutoFilter - 更新过滤器问题
- cluster-computing - 如何使用 slurm 在特定节点上运行作业?
- android - 安卓机房打开数据库失败
- javascript - express+pug 中的动态 URL