【问题标题】:What is "string[] args" in Main class for?Main 类中的“string[] args”是干什么用的?
【发布时间】:2009-02-16 09:52:31
【问题描述】:

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

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

【问题讨论】:

    标签: c#


    【解决方案1】:

    来自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

    【讨论】:

    • 感谢您的澄清!
    【解决方案2】:

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

    这段代码完全有效:

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

    【讨论】:

      【解决方案3】:

      用于传递命令行参数。例如args[0] 会给你第一个命令行参数,如果有的话。

      【讨论】:

        【解决方案4】:

        除了其他答案。您应该注意到这些参数可以为您提供在.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 应用程序上。

        这是我之后得到的输出:

        【讨论】:

          【解决方案5】:

          args 参数存储用户在运行程序时给出的所有命令行参数。

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

          program.exe有4个参数

          您的 args 参数将包含四个字符串:“there”、“are”、“4”和“parameters”

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

          【讨论】:

            【解决方案6】:

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

            【讨论】:

              【解决方案7】:

              您一定见过一些从命令行运行并让您向它们传递参数的应用程序。如果你用 C# 编写一个这样的应用程序,数组 args 将作为上述参数的集合。

              这就是你处理它们的方式:

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

              【讨论】:

                【解决方案8】:

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

                这些参数作为字符串数组传递给程序。

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

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2014-02-22
                  • 1970-01-01
                  • 1970-01-01
                  • 2019-11-23
                  • 1970-01-01
                  • 2011-12-10
                  • 2011-08-25
                  • 2014-06-22
                  相关资源
                  最近更新 更多