C#带参数运行方法
比如aa.exe-autoaa.exe-main两组后缀,要求分别运行aa的某个线程,比如aa.exe-auto打开from1,aa.exe-main打开from2请给完...
比如
aa.exe -auto
aa.exe -main
两组后缀,要求分别运行aa的某个线程,比如aa.exe -auto打开from1,aa.exe -main打开from2
请给完整代码,并写备注,谢谢 展开
aa.exe -auto
aa.exe -main
两组后缀,要求分别运行aa的某个线程,比如aa.exe -auto打开from1,aa.exe -main打开from2
请给完整代码,并写备注,谢谢 展开
3个回答
展开全部
由于需要修改Program的Main方法,需要更加谨慎,因为一个结构清晰的Main对于后期维护是一个很好的帮助。以下的代码将解析参数,构造启动窗体,启动窗体三个逻辑分割为三个方法。
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] Args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//启动有默认启动窗体构造器构造出来的启动窗体
Application.Run(StartFormCreator(ParseArgsForFormlabel(Args)));
}
//从参数中解析启动窗体参数
static string ParseArgsForFormlabel(string[] args)
{
string formLable = string.Empty;
//如果参数数量大于0则截取第一个参数,否则返回值为string.Empty
if (args.Length > 0)
{
formLable = args[0];
}
return formLable;
}
//根据启动窗体参数构造对应的窗体
static Form StartFormCreator(string Label)
{
//如果参数是-auto则构造Form1,否则为Form2
if (Label.ToLower() == "-auto")
{
return new Form1();
}
else
{
return new Form2();
}
}
}
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] Args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//启动有默认启动窗体构造器构造出来的启动窗体
Application.Run(StartFormCreator(ParseArgsForFormlabel(Args)));
}
//从参数中解析启动窗体参数
static string ParseArgsForFormlabel(string[] args)
{
string formLable = string.Empty;
//如果参数数量大于0则截取第一个参数,否则返回值为string.Empty
if (args.Length > 0)
{
formLable = args[0];
}
return formLable;
}
//根据启动窗体参数构造对应的窗体
static Form StartFormCreator(string Label)
{
//如果参数是-auto则构造Form1,否则为Form2
if (Label.ToLower() == "-auto")
{
return new Form1();
}
else
{
return new Form2();
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改写Program.cs文件中的代码如下:
namespace WindowsApplication1
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)//args是Main函数的参数,接收命令行参数,命令行中的参数可以多个用空格隔开
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (args.Length > 0)
{
switch (args[0])
{
case "abc"://若第一个参数为abc,则将FormABC作为主窗体
Application.Run(new FormABC());
break;
case "cde"://若第一个参数为cde,则将Form2作为主窗体
Application.Run(new Form2());
break;
}
}
}
}
}
namespace WindowsApplication1
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)//args是Main函数的参数,接收命令行参数,命令行中的参数可以多个用空格隔开
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (args.Length > 0)
{
switch (args[0])
{
case "abc"://若第一个参数为abc,则将FormABC作为主窗体
Application.Run(new FormABC());
break;
case "cde"://若第一个参数为cde,则将Form2作为主窗体
Application.Run(new Form2());
break;
}
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询