C#中的Main类有一个string[]参数args。
它是做什么用的,它在哪里被使用?
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...
}
}
除了其他答案,你还应该注意这些参数可以为你提供被拖放到.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[0]
将给出第一个命令行参数。
args参数存储了在运行程序时用户输入的所有命令行参数。
如果您像这样从控制台运行程序:
program.exe 这里有4个参数
您的args参数将包含四个字符串:"这里","有","4"和"参数"
以下是如何从args参数中访问命令行参数的示例:example
你一定见过一些运行在命令行中并允许你传递参数的应用程序。如果你用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
// 包含参数的字符串数组。
myapp.exe -c -d
"启动程序,则string[] args[]
将包含字符串"-c"和"-d"。