gpt4 book ai didi

.net - (string[] args) 和 System.Environment.CommandLine 有什么区别?

转载 作者:行者123 更新时间:2023-12-04 11:11:58 25 4
gpt4 key购买 nike

我正在继承几个控制台应用程序的维护,这些应用程序自然是用 static void Main(string[] args) 输入的。 .但是,代码忽略了 args数组,而是从 System.Environment.CommandLine 读取命令行参数.

这里有功能上的区别吗?

内容看起来相同。如果有的话,我会怀疑调用 System.Environment.CommandLine 会影响性能。 (但还不足以让我担心或关心到足以衡量)。

更新:我怀疑 System.Environment.CommandLine应该包含可执行路径,但我没有看到它......因为我找错了地方。代码还有 string[] arrCmdLine = System.Environment.GetCommandLineArgs(); ....System.Environment.CommandLine.ToLower()检查是否存在“调试”,而所有其他参数都从 GetCommandLineArgs() 中提取当我要“为什么不直接使用 args[] ?”时,我在精神上将两者混为一谈。

多年来,我一直为解析命令行参数的最佳方式而苦恼,但一直以来都是“按正确的顺序放置它们!” [jk]

最佳答案

System.Environment.CommandLine包括可执行文件和参数作为单个字符串。

// Sample for the Environment.CommandLine property.
using System;

class Sample
{
public static void Main()
{
Console.WriteLine();
// Invoke this sample with an arbitrary set of command line arguments.
Console.WriteLine("CommandLine: {0}", Environment.CommandLine);
}
}

/*
This example produces the following results:

C:\>env0 ARBITRARY TEXT

CommandLine: env0 ARBITRARY TEXT
*/

http://msdn.microsoft.com/en-us/library/system.environment.commandline.aspx
args参数是一个参数数组。因此,虽然您可以解析来自 System.Environment.CommandLine 的各个参数,我不知道你为什么想要。我能看到的唯一原因是您是否需要访问 Main() 之外的参数。 ,无论如何这可能是一个坏主意。您的 Main()方法应该处理参数并根据需要将它们传递到应用程序的其余部分。

关于.net - (string[] args) 和 System.Environment.CommandLine 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11039649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com