更新:2007 年 11 月
Main 方法可以使用参数,在这种情况下它采用下列形式之一:
C# | 复制代码 |
---|---|
static int Main(string[] args) |
C# | 复制代码 |
---|---|
static void Main(string[] args) |
说明: |
---|
若要在 Windows 窗体应用程序中的 Main 方法中启用命令行参数,必须手动修改 program.cs 中 Main 的签名。Windows 窗体设计器生成的代码创建没有输入参数的 Main。也可以使用 |
Main 方法的参数是表示命令行参数的
C# | 复制代码 |
---|---|
if (args.Length == 0) { System.Console.WriteLine("Please enter a numeric argument."); return 1; } |
还可以使用
复制代码 | |
---|---|
long num = Int64.Parse(args[0]); |
也可以使用别名为 Int64 的 C# 类型 long:
复制代码 | |
---|---|
long num = long.Parse(args[0]); |
还可以使用 Convert 类的方法 ToInt64 完成同样的工作:
复制代码 | |
---|---|
long num = Convert.ToInt64(s); |
有关更多信息,请参见
示例
下面的示例演示如何在控制台应用程序中使用命令行参数。程序在运行时采用一个参数,将该参数转换为整数,并计算该数的阶乘。如果没有提供参数,则程序发出一条消息来解释程序的正确用法。
说明: |
---|
在 Visual Studio 中运行应用程序时,可以在 |
有关如何使用命令行参数的更多示例,请参见如何:创建和使用 C# DLL(C# 编程指南)。
C# | 复制代码 |
---|---|
public class Functions { public static long Factorial(int n) { // Test for invalid input if ((n <= 0) || (n > 256)) { return -1; } // Calculate the factorial iteratively rather than recursively: long tempResult = 1; for (int i = 1; i <= n; i++) { tempResult *= i; } return tempResult; } } class MainClass { static int Main(string[] args) { // Test if input arguments were supplied: if (args.Length == 0) { System.Console.WriteLine("Please enter a numeric argument."); System.Console.WriteLine("Usage: Factorial <num>"); return 1; } // Try to convert the input arguments to numbers. This will throw // an exception if the argument is not a number. // num = int.Parse(args[0]); int num; bool test = int.TryParse(args[0], out num); if(test == false) { System.Console.WriteLine("Please enter a numeric argument."); System.Console.WriteLine("Usage: Factorial <num>"); return 1; } // Calculate factorial. long result = Functions.Factorial(num); // Print result. if(result == -1) System.Console.WriteLine("Input must be > 0 and < 256."); else System.Console.WriteLine("The Factorial of {0} is {1}.", num, result); return 0; } } // If 3 is entered on command line, the // output reads: The factorial of 3 is 6. |