在C#中,程序的执行是从main()方法开始的。 main() 方法不接受任何其他方法的参数,但它接受用户通过命令行传递给它的参数,这些参数称为命令行参数。以下是有关 C# 中命令行参数的一些要点:
语法及解释
采用命令行参数的 Main() 方法的语法如下:
static void Main(string[] args) { //user code }
在上面的语法中,‘static’是关键字,表示Main()方法可以在没有任何实例的情况下执行。 ‘void’是返回类型。 “Main”表示这是程序的 Main() 方法,“string[]”是传递给该方法的参数类型。 ‘args’ 是用户定义的参数名称。
命令行参数作为字符串类型数组传递给 Main() 方法,因此我们可以在运行程序时传递 n 个参数。
示例:
public static void Main(string[] args) { //user code }
当我们将参数传递给上面的 Main() 方法时,它将被“args”变量看到,它是一个字符串类型的数组。然后,我们可以使用索引位置访问该数组中的各个参数。
之前,传递的每个元素都是字符串类型,稍后可以使用 C# 提供的 Convert 类或 Parse() 方法将其更改为所需的数据类型,如下例所示:
long num = long.Parse(args[0]);
上面的语句将使用 Parse() 方法将索引号 0 处的参数转换为等效的“long”值,然后将其存储在类型为“long”的变量“num”中。
int num = Convert.ToInt32(args[1]);
该语句会将索引号 1 处的参数转换为等效的 32 位有符号整数,然后将其存储在类型为“int”的变量“num”中。
我们还可以检查命令行参数是否存在,即使用“Length”属性检查参数是否传递给 Main() 方法,如下所示:
if (args.Length > 0) { System.Console.WriteLine("Arguments passed"); } else { System.Console.WriteLine("Arguments are not passed"); }
对于 Windows 窗体应用程序,要在 Main() 方法中启用命令行参数,我们需要修改“program.cs”文件中 Main() 方法的签名。这是因为 Windows 窗体设计器生成的代码包含没有输入参数的 Main() 方法。
如果您在 Visual Studio 中使用 C#,那么有一个很好的方法可以在 Visual Studio 中为 Main() 方法输入命令行参数。以下是一些步骤:
我们可以在此文本框中输入命令行参数,每个参数之间用空格分隔。请在下面找到相同的屏幕截图:
下面提到了不同的示例:
例如,通过命令行参数从用户那里获取十个整数作为输入,并检查这些数字中的奇数和偶数。
代码:
using System; using System.IO; using System.Collections.Generic; namespace ConsoleApp4 { class Program { public static void Main(string[] args) { List<int> evenArray = new List<int>(); List<int> oddArray = new List<int>(); try { //checking if any argument exists if (args.Length == 0) { Console.WriteLine("Please enter numbers to check for odd even!"); return; } //accessing arguments using for loop for (int i = 0; i < args.Length; i++) { //checking for odd and even if ((Convert.ToInt32(args[i]) % 2) == 0) { evenArray.Add(Convert.ToInt32(args[i])); } else { oddArray.Add(Convert.ToInt32(args[i])); } } //displaying all the numbers entered Console.WriteLine("Numbers entered:"); for (int i = 0; i < args.Length; i++) { Console.WriteLine(args[i]); } //displaying even numbers entered Console.WriteLine("\nEven numbers: "); for (int i = 0; i < evenArray.Count; i++) { Console.WriteLine(evenArray[i]); } //displaying odd numbers entered Console.WriteLine("\nOdd numbers: "); for (int i = 0; i < oddArray.Count; i++) { Console.WriteLine(oddArray[i]); } Console.ReadLine(); } catch(Exception ex) { Console.WriteLine(ex.Message); } } } }
输出:
包含运行上述程序的命令(输入输入和收到输出)的屏幕截图如下:
例如,通过命令行从用户处获取一个数字并计算其阶乘。
代码:
using System; using System.IO; using System.Collections.Generic; namespace ConsoleApp4 { class Program { public static void Main(string[] args) { int number; int factorial; try { //checking if any argument exists if (args.Length == 0) { Console.WriteLine("Please enter a number to calculate " + "its factorial!"); return; } if(args.Length > 1) { Console.WriteLine("Please enter only one number."); return; } Console.WriteLine("The number entered is: " + args[0]); number = Convert.ToInt32(args[0]); factorial = number; //calculating factorial of number using 'for' loop for(int i = number - 1; i >= 1; i--) { factorial = factorial * i; } Console.WriteLine("Factorial of {0} is {1}: ", args[0], factorial); Console.ReadLine(); } catch(Exception ex) { Console.WriteLine(ex.Message); } } } }
输出:
包含运行上述程序的命令以及输入的数字和收到的输出的屏幕截图如下:
注意:我们使用“Developer Command Prompt for VS 2019”执行了上述两个程序。我们还可以通过 Visual Studio 的“调试”选项中的“命令行参数”文本框提供命令行参数,从 Visual Studio 执行这些程序。命令行参数是使用命令行从用户传递到程序的 Main() 方法的参数。用户在程序执行期间输入这些参数。这些参数由 Main() 方法以字符串类型数组形式接收。
以上是C# 命令行参数的详细内容。更多信息请关注PHP中文网其他相关文章!