2010-10-02 178 views
4

我想将一个软件部署到个人电脑,它需要能够告诉程序一些信息。我不想使用配置文件,因为exe文件将位于共享驱动器上,并且他们无法访问自己的配置文件。命令行参数是否是执行此操作的最佳方法?如果是这样,我将如何通过这个并在C#程序中捡起它?命令行参数

回答

8

如果你不想覆盖主要的方法,你可以使用Environment类。

foreach (string arg in Environment.GetCommandLineArgs()) 
{ 
    Console.WriteLine(arg); 
} 
+2

从main获取参数与此之间的主要区别在于第0个元素是来自Environment的可执行文件的名称。 – 2010-10-02 16:28:31

+0

+1我发现的唯一答案解释*其中的参数是。其他人都在谈论如何解析它们;我只需要**找到他们! – 2011-12-14 21:07:42

2

在C#中读取命令行参数的最简单方法是确保您的Main方法采用string[]参数 - 该参数由从命令行传递的参数填充。

 
$ cat a.cs 
class Program 
{ 
    static void Main(string[] args) 
    { 
     foreach (string arg in args) 
     { 
      System.Console.WriteLine(arg); 
     } 
    } 
} 
$ mcs a.cs 
$ mono ./a.exe arg1 foo bar 
arg1 
foo 
bar 
5

是的命令行是一种将信息传递给程序的好方法。这是从任何.NET程序

public static void Main(string[] args) { 
    // Args is the command line 
} 

从您可以与呼叫Environment.GetCommandLineArgs访问其他程序中的Main功能来访问。尽管可以在程序启动后修改命令行信息,但请注意。它只是一个本地内存块,可以通过程序写入