【发布时间】:2009-02-16 09:52:31
【问题描述】:
在 C# 中,Main 类具有 string[] args 参数。
这是做什么用的,在哪里使用?
【问题讨论】:
标签: c#
在 C# 中,Main 类具有 string[] args 参数。
这是做什么用的,在哪里使用?
【问题讨论】:
标签: c#
来自C# programming guide on MSDN:
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
【讨论】:
除了其他人的回答之外,您应该注意,如果您的应用程序不使用命令行参数,则参数在 C# 中是可选的。
这段代码完全有效:
internal static Program
{
private static void Main()
{
// Get on with it, without any arguments...
}
}
【讨论】:
用于传递命令行参数。例如args[0] 会给你第一个命令行参数,如果有的话。
【讨论】:
除了其他答案。您应该注意到这些参数可以为您提供在.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 应用程序上。
【讨论】:
args 参数存储用户在运行程序时给出的所有命令行参数。
如果您像这样从控制台运行程序:
program.exe有4个参数
您的 args 参数将包含四个字符串:“there”、“are”、“4”和“parameters”
以下是如何从 args 参数访问命令行参数的示例:example
【讨论】:
这是传递给程序的命令行开关数组。例如。如果您使用命令“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 // 包含参数的字符串数组。
【讨论】: