English 中文(简体)
主类中的 "string[] args" 是用来做什么的? (Zhǔ lèi zhōng de "string[] args" shì yòng lái zuò shén me de?)
原标题:
  • 时间:2009-02-16 09:52:31
  •  标签:

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

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

最佳回答

从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
问题回答

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

这个代码是完全有效的。

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

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

Besides the other answers. You should notice these args can give you the file path that was dragged and dropped on the .exe file. i.e if you drag and drop any file on your .exe file then the application will be launched and the arg[0] will contain the file path that was dropped onto it.

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

这将打印出拖放到 .exe 文件上的文件路径。例如:

C:UsersABCXYZsource\eposConsoleTest\Debug\ConsoleTest.pdb C:用户ABCXYZ源\ eposConsoleTest \ 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. And here is the output that I get after that: Output

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

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

program.exe有4个参数。

你的args参数将包含四个字符串:"there","are","4"和"parameters"。

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

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

你一定看过一些从命令行运行的应用程序,并让你传递参数。如果你用C#编写这样的应用程序,那么数组args就是所说参数的集合。

这是您处理它们的方法:

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

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

这些参数以字符串数组的形式传递给程序。

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





相关问题
热门标签