控制台应用程序参数,参数如何传递给Main方法

Tom*_*mas 29 .net c# command-line-arguments

这将是来自c#beginner的问题.当我创建控制台应用程序时,我得到带有参数args作为数组字符串的Main方法.我不明白系统如何调用此方法以及如何将args传递给Main方法.也许有人能解释一下?是否重置了某种控制台类的Main方法?

namespace ConsoleApplication1
{
    class Program
    {    
        static void Main(string[] args)
        {    
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Bas*_*ANI 55

所有答案都很棒,并且很好地解释了一切

但我只想指出__CODE__主要方法

在视觉工作室

  1. __CODE__ 然后选择 __CODE__
  2. 转到__CODE__那个__CODE__部分,为你的args提供应用程序

喜欢这个图像

属性窗口

并且知道秘密


V4V*_*tta 24

Main方法是应用程序的入口点.如果你通过ildasm那时结账

.method private hidebysig static void  Main(string[] args) cil managed
{
  .entrypoint
Run Code Online (Sandbox Code Playgroud)

这有助于调用该方法

这些论点如同传递 C:\AppName arg1 arg2 arg3


Zeb*_*ebi 16

运行时拆分控制台在每个空间给出的参数.

如果你打电话

myApp.exe arg1 arg2 arg3
Run Code Online (Sandbox Code Playgroud)

Main方法获取一个数组

var args = new string[] {"arg1","arg2","arg3"}
Run Code Online (Sandbox Code Playgroud)


Nop*_*ope 9

主叫怎么样?

当您使用控制台应用程序模板时,代码将被编译,在启动对象中需要一个名为Main的方法,因为Main是市场作为应用程序的入口点.

默认情况下,在项目属性设置中未指定任何启动对象,默认情况下将使用Program类.如果您愿意,可以在"构建"选项卡下的项目属性中更改此项.

请记住,您指定的任何对象都是启动对象,其中必须有一个名为Main的方法.

如何将args传递给main方法

可接受的格式是MyConsoleApp.exe value01 value02等...

应用程序将每个空格后的每个值分配到参数数组的单独元素中.

因此,MyConsoleApp.exe value01 value02将意味着您的args参数有2个元素:

[0] = "value01"

[1] = "value02"
Run Code Online (Sandbox Code Playgroud)

如何解析输入值并使用它们取决于您.

希望这有帮助.

补充阅读:

创建控制台应用程序(Visual C#)

命令行参数(C#编程指南)


Adi*_*iii 5

在visual studio中,您也可以这样做以简单地传递或避免命令行参数

 static void Main(string[] args)
    {
        if (args == null)
        {
            Console.WriteLine("args is null"); // Check for null array
        }
        else
        {
            args=new string[2];
            args[0] = "welcome in";
            args[1] = "www.overflow.com";
            Console.Write("args length is ");
            Console.WriteLine(args.Length); // Write array length
            for (int i = 0; i < args.Length; i++) // Loop through array
            {
                string argument = args[i];
                Console.Write("args index ");
                Console.Write(i); // Write index
                Console.Write(" is [");
                Console.Write(argument); // Write string
                Console.WriteLine("]");
            }
        }
Run Code Online (Sandbox Code Playgroud)