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__主要方法
在视觉工作室
__CODE__ 然后选择 __CODE____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)
主叫怎么样?
当您使用控制台应用程序模板时,代码将被编译,在启动对象中需要一个名为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 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)
| 归档时间: |
|
| 查看次数: |
92166 次 |
| 最近记录: |