2

对不起,我真的不能用谷歌搜索这个,因为我不确定如何用几句话正确地说出来。

但基本上我想要类似的东西,当你通过 dos 或通过如下所示的快捷方式打开程序时:

"c:\program.exe" 值1 值2

我的应用程序将能够使用这些值。但是当我不输入值时,我的应用程序仍然可以正常启动。

我希望我在这里想说的有任何意义

任何帮助表示赞赏

4

4 回答 4

6

这些是传递给您的主要功能的参数:

public static void main (string[] args)
{
    // Check to see if at least two args were passed in.
    if(args.Length >= 2)
    {
        Console.WriteLine(args[0]); // value1
        Console.WriteLine(args[1]); // value2
    }
}

但是请记住,无法保证传入参数的顺序或者它们是您期望的值。您应该使用命名参数,然后在应用程序开始时解析和验证它们。您的命令可能类似于:

C:\program.exe /V1 value1 /V2 value2

至于一个好的解析器列表,我会查看:

.net - 在 C# 中解析命令行参数的最佳方式

于 2012-07-04T15:05:40.057 回答
1

查看 Microsoft命令行参数教程

如果未提供参数,则只需使用一些默认值。

public static void Main(string[] args)
{
   // The Length property is used to obtain the length of the array. 
   // Notice that Length is a read-only property:
   Console.WriteLine("Number of command line parameters = {0}",
      args.Length);
   for(int i = 0; i < args.Length; i++)
   {
       Console.WriteLine("Arg[{0}] = [{1}]", i, args[i]);
   }

   if(args.length < 2) 
   { 
       x = 1;
   }  else {
   {
       x = Arg[2]; 
   }

}

于 2012-07-04T15:06:44.887 回答
1

当您创建一个可执行文件时,您有一个具有 Main(string[] args) 的 Main 函数,您可以在此处读取用于调用该程序的参数。

如果您想要默认值,您可以使用定义的值创建一个类变量(或使用应用程序属性),并且如果使用参数调用程序程序,则覆盖它们。

希望它可以帮助你:)

于 2012-07-04T15:08:00.323 回答
0

以这种方式从命令行执行您的 Program.exe

C:\程序测试1测试2

要了解如何在 C# 中执行此操作,请使用链接MSDN

于 2012-07-04T15:07:33.900 回答