Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 什么是命令行参数?_C#_Java_Command Line Arguments - Fatal编程技术网

C# 什么是命令行参数?

C# 什么是命令行参数?,c#,java,command-line-arguments,C#,Java,Command Line Arguments,我一直想问我的大学老师它在公共静态void main(String[]args)中具体做了什么,但我从来没有机会,因为这是上学期,我从来没有实际做过什么,它的重要性是什么,我们只是因为练习才使用它。但当我试图学习C时,这些类型的问题就出现了(我试图从MSDN教程中学习C,但命令行参数的定义没有那么深入和密集)。什么是命令行参数?这些参数可以在启动时传递给应用程序。它们用空格隔开。 请参见此处:命令行参数是从命令行(“DOS提示符”)调用时传递给可执行文件的参数,例如 C:\Users\dtb>M

我一直想问我的大学老师它在
公共静态void main(String[]args)
中具体做了什么,但我从来没有机会,因为这是上学期,我从来没有实际做过什么,它的重要性是什么,我们只是因为练习才使用它。但当我试图学习C时,这些类型的问题就出现了(我试图从MSDN教程中学习C,但命令行参数的定义没有那么深入和密集)。什么是命令行参数?

这些参数可以在启动时传递给应用程序。它们用空格隔开。
请参见此处:

命令行参数是从命令行(“DOS提示符”)调用时传递给可执行文件的参数,例如

C:\Users\dtb>MyProgram.exe这些是命令行参数

此外,当您将文件扩展名(如.foo)与可执行文件关联时,双击该文件时,该文件名将作为命令行参数传递给可执行文件。

在主可执行文件名之后传递的任何内容:

helloworld.exe arg1 arg2“arg3”

在这种情况下,控制台将
arg1
arg2
解释为前两个参数,
“arg 3”
解释为第三个参数。CLI(在本例中为命令行解释器)将使用空格作为分隔符

还要记住,如果可执行文件的路径包含空格:

hello world.exe

然后,命令行解释器通常将
hello
解释为命令,并将
world.exe
作为第一个参数;因此,在本例中,引号对于实际描述命令结束和参数开始的位置非常重要


您的应用程序无法控制引号的解析方式;因此,如果您需要有自己的参数引用系统(例如,如果您将运行时参数打包到一个单行参数中),您可能需要构建自己的解析器并使用自己的引用系统;e、 g.使用
甚至括号。

命令行参数是程序调用的字符串。例如:
pingcomputera
ComputerA
将是
ping

的命令行参数。是的,您向应用程序传递了一些参数。假设我将这样运行您的程序:

java -jar yourApplication.jar Pavel Janicek
然后


您可以稍后打印这些参数,也可以将其用作程序的变量

命令行参数是您在运行程序时提供的参数。比如
java-jar myprogram arg1 arg2
,或者在java中运行
java myprogram arg1 arg2
而不是
java myprogram

因此,以下代码:

for (String arg : args) 
System.out.println(arg);
输出将是
arg1 arg2

它的意思是第一个参数=arg1,第二个参数=arg2

如果我使用IDE,我的程序还能工作吗

另外,所有IDE都支持带有命令行参数的程序

如果我删除(字符串[]参数)

当您启动时,只有一个名为

public static void main(String[] args) 

之所以称为,是因为这是预期的结果

如果你有办法

public static void runme(String... args) // won't be called.
public int main(String... args) // won't be called.
public static int main(String... args)  // won't be called.
public static void main()  // won't be called.

这些方法不同,您将得到一个错误。

It您在命令行上提供的参数。您以前使用过命令行吗,比如DOS提示符?你能澄清你的疑问吗?维基百科上有一篇很好很清楚的文章:为什么要投否决票?我这样问是因为我需要清楚。@Peter Lawrey是的,我使用过命令行,比如DOS。我的疑问是什么是命令行参数,现在我已经看到了,我已经部分理解了它。如果我使用IDE,我的程序还能工作吗?如果我删除(字符串[]参数)?或者不?我并没有否决投票,但很难知道你们需要澄清什么。这里的所有答案都说明了任何使用过计算机的人都应该真正知道的东西。在C语言中,
void Main()
int Main()
、和
int Main(string[])
都是可以接受的。@dtb有趣。C#是否支持varargs?如果支持,是否可以接受?是和是,例如
void Main(params string[]args)
。在C#中,
Main
方法也不需要是
public
?我该如何打印它们呢?如果这听起来很刺耳,很抱歉,但我相信你可以很容易地用谷歌搜索,或者在这里找到另一个QA,并提供你需要的答案。如果没有,请提出另一个问题。
public static void main(String... args) 
public static void runme(String... args) // won't be called.
public int main(String... args) // won't be called.
public static int main(String... args)  // won't be called.
public static void main()  // won't be called.