62

在 C# 中,Main 类具有 string[] args 参数。

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

4

8 回答 8

107

来自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

Main 方法将传递一个包含三个字符串的数组:“Arg1”、“Arg2”、“Arg3”。

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

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

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

Copy.exe C:\file1.txt C:\file2.txt
于 2009-02-16T10:01:15.137 回答
28

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

此代码完全有效:

internal static Program
{
    private static void Main()
    {
        // Get on with it, without any arguments...
    }
}
于 2009-02-16T10:52:51.643 回答
13

用于传递命令行参数。例如args[0]会给你第一个命令行参数,如果有的话。

于 2009-02-16T09:53:33.047 回答
9

除了其他答案。您应该注意到这些参数可以为您提供拖放到文件上的文件路径.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 文件被放置在 ConsoleTest.exe 文件中。 这是我之后得到的输出: 输出

于 2017-08-18T08:46:08.670 回答
1

args 参数存储用户在运行程序时提供的所有命令行参数。

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

program.exe有4个参数

您的 args 参数将包含四个字符串:“there”、“are”、“4”和“parameters”

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

于 2009-02-16T09:58:31.070 回答
0

您一定见过一些从命令行运行并让您向它们传递参数的应用程序。如果您用 C# 编写一个这样的应用程序,则该数组将args用作上述参数的集合。

这是您处理它们的方式:

static void Main(string[] args) {
    foreach (string arg in args) {
       //Do something with each argument
    }
}
于 2009-02-16T09:54:58.147 回答
0

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

于 2009-02-16T09:57:04.770 回答
0

它是您发送给程序的参数/参数(因此是 args)的数组。例如ping 172.16.0.1 -t -4

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

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

于 2019-07-28T03:39:47.617 回答