2016-08-06 34 views
-1

我刚刚开始使用一些基本的C#练习。我从下面的链接没有得到所需的输出

https://msdn.microsoft.com/en-us/library/aa288457(v=vs.71).aspx

这里提到的例子是低于

// cmdline2.cs 
// arguments: John Paul Mary 
using System; 

public class CommandLine2 
{ 
    public static void Main(string[] args) 
    { 
     Console.WriteLine("Number of command line parameters = {0}", 
     args.Length); 
     Console.ReadLine(); 
     foreach (string s in args) 
     { 
      Console.WriteLine(s); 
     } 
    } 
} 

下面的代码是预期的结果。

使用一些像这样的参数运行程序:cmdline2 John Paul Mary。

输出将是:

的命令行参数的数量= 3
约翰
保罗
玛丽

然而,在我的情况下第一,当我试图执行代码,命令行出现一秒钟后消失。

我添加了console.read(),我在下面看到。

数量的命令行参数= 0

所以我想了解什么错在这里。任何帮助表示赞赏。

问候 阿努拉格

+0

你确定你正确传递参数吗?你的代码看起来很好 –

+1

你是如何运行应用程序的?如果你在Visual Studio中运行调试器,那么它可能不带命令行参数启动它。您可以在DOS提示符下手动运行它,或者在项目属性窗口的调试面板中设置命令行参数(右键单击解决方案资源管理器中的项目,属性)。保持Console.Read在那里,以防止它立即退出调试模式。 –

+0

这就是詹姆斯所说的。您需要打开一个单独的命令窗口。进入你的版本所在的目录并在那里输入你的命令。您可以按住Shift键并右键单击“build”文件夹并选择命令提示符在这里。 – Mastro

回答

0

您必须在最后添加的ReadLine,,暂停执行,否则程序只运行,并退出...

// cmdline2.cs 
// arguments: John Paul Mary 
using System; 

public class CommandLine2 
{ 
    public static void Main(string[] args) 
    { 
     Console.WriteLine(
     "Number of command line parameters = {0}", 
      args.Length); 
     foreach (string s in args) Console.WriteLine(s); 

     Console.WriteLine("Hit any key to exit"); 
     Console.ReadLine(); 
    } 
} 

此外,运行此从Visual Studio中,添加您的命令行参数项目的属性页

enter image description here

+0

嗨查尔斯,这些信息真的很有帮助。 – Aron

0

args是传递给可执行文件的命令的数组。

你没有显示的是你传递命令行参数的地方。这可以通过两种方式完成:

  1. 通过从命令行调用exe,例如ping www.google.com -t调用带有2个参数的ping.exe。
在你的榜样

,你会打电话commandLine2.exe 3 John Paul Mary

  • 调试,你可以使用以下方法来specificy命令:
  • enter image description here

    在开始您需要添加命令行参数的选项。

    然后,您应该看到正确数量的参数。

    最后一项是您的readline在Console.WriteLine()之前。在Main方法中将读取移动到代码的末尾。