主类中的“string[] args”是什么?

问题描述 投票:0回答:8

在 C# 中,Main 类有

string[] args
参数。

它的用途是什么以及在哪里使用?

c#
8个回答
129
投票

来自 MSDN 上的 C# 编程指南

Main方法的参数是一个String数组,代表命令行参数

所以,如果我有一个像这样的程序(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

36
投票

除了其他人的回答之外,您应该注意,如果您的应用程序不使用命令行参数,则参数在 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\源 epos\ConsoleTest\ConsoleTest 位于\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 参数将包含四个字符串:“there”、“are”、“4”和“parameters”

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


0
投票

这是传递给程序的命令行开关数组。 例如。如果您使用命令“

myapp.exe -c -d
”启动程序,那么
string[] args[]
将包含字符串“-c”和“-d”。


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
// 包含参数的字符串数组。

© www.soinside.com 2019 - 2024. All rights reserved.