"string[] args"在Main类中是用来干什么的?

78

C#中的Main类有一个string[]参数args。

它是做什么用的,它在哪里被使用?

8个回答

128

来自于MSDN上的C#编程指南:

Main方法的参数是一个字符串数组,表示命令行参数。

因此,如果我有一个程序(MyApp.exe),像这样:

class Program
{
  static void Main(string[] args)
  {
    foreach (var arg in args)
    {
      Console.WriteLine(arg);
    }
  }
}

我是这样在命令行中启动的:

MyApp.exe Arg1 Arg2 Arg3

主方法将接受一个包含三个字符串的数组:"Arg1","Arg2","Arg3"。

如果需要传递包含空格的参数,请用引号括起来。例如:

MyApp.exe "Arg 1" "Arg 2" "Arg 3"

通常情况下,当你需要在程序运行时传递信息到应用程序中时,会使用命令行参数。例如,如果你正在编写一个从一个位置复制文件到另一个位置的程序,你可能会将这两个位置作为命令行参数传递。例如:

Copy.exe C:\file1.txt C:\file2.txt

35

除了其他人的答案之外,你应该注意如果你的应用程序不使用命令行参数,则C#中的参数是可选的。

这段代码是完全有效的:

internal static Program
{
    private static void Main()
    {
        // Get on with it, without any arguments...
    }
}

14

除了其他答案,你还应该注意这些参数可以为你提供被拖放到.exe文件上的文件路径。

例如,如果你将任何文件拖放到.exe文件上,那么应用程序将启动,并且arg[0]将包含被拖放到应用程序上的文件路径。

static void Main(string[] args)
{
    Console.WriteLine(args[0]);
}

这将打印在.exe文件上拖动的文件的路径,例如:

C:\Users\ABCXYZ\source\repos\ConsoleTest\ConsoleTest\bin\Debug\ConsoleTest.pdb

因此,循环遍历args数组将为您提供选择并拖放到控制台应用程序的.exe文件上的所有文件的路径。参见:

static void Main(string[] args)
{
    foreach (var arg in args)
    {
        Console.WriteLine(arg);
    }
    Console.ReadLine();
}
上面的代码示例将打印所有被拖放到它上面的文件名,看,我正在将5个文件拖放到我的ConsoleTest.exe应用程序上。 5 Files being dropped on the ConsoleTest.exe file. 然后这是我得到的输出: Output

13

用于传递命令行参数。例如,如果有一个命令行参数,args[0] 将给出第一个命令行参数。


1

args参数存储了在运行程序时用户输入的所有命令行参数。

如果您像这样从控制台运行程序:

program.exe 这里有4个参数

您的args参数将包含四个字符串:"这里","有","4"和"参数"

以下是如何从args参数中访问命令行参数的示例:example


0

你一定见过一些运行在命令行中并允许你传递参数的应用程序。如果你用C#编写这样的应用,那么数组args就是所述参数的集合。

以下是如何处理它们:

static void Main(string[] args) {
    foreach (string arg in args) {
       //Do something with each argument
    }
}

0

这是一个参数/参数数组(因此称为args),您将其发送到程序中。例如ping 172.16.0.1 -t -4

这些参数作为字符串数组传递给程序。

string[] args // 包含参数的字符串数组。


0
这是一个包含传递给程序的命令行开关的数组。例如,如果您使用命令"myapp.exe -c -d"启动程序,则string[] args[]将包含字符串"-c"和"-d"。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接