zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C#程序之Main()方法

2023-09-11 14:21:53 时间

一、Main()方法的简介

1、一般情况下,一个C#可执行程序只有一个应用程序对象(也就是就程序入口),但是在某些情况,可能会有多个应用程序对象(程序入口),如单元测试中,这个时候我们就需要通过命令行指定以哪个Main()方法作为程序的入口。

2、分析Main()方法,我们发现Main()方法通过static修饰,这个主要是让我们可以通过类名加方法的形式吊用Main()方法,我们再调用之前不需要创建对象的实例(也就是new出该对象)

3、分析Main()方法的参数是一个字符串(string[] args),这个参数可以包含任意数量的命令行输入参数

 

二、Main()方法的的其他形式1、默认情况下,Visual Studio生成的Main()方法有一个void返回值,并且只接收一个参数(一个字符串数组,用于接收任意数量的命令行输入参数)

public static void Main(string[] args)
{
//方法体
}

但是这不是唯一的Main()方法的形式,以下的Main()方法作为程序的入口点都是被允许的.

//整型返回类型,以字符串数组作为参数
static int Main(string[] args)
{
   return 0;
}

//没有返回值,没有参数
static void Main()
{

}

//整型返回类型,没有参数
static int Main()
{

}

注意、如果不给Main()方法提供一个修饰符,那么Main()方法默认就是私有的,当然Main()方法可以定义成共有的,但是Visual Studio会把程序的Main()自动定义成隐式私有的,以确保其他程序不能直接吊用另一个程序的入口点

很明显,选择怎样构造Main()方法要基于两个问题。第一当Main()完成且程序终止时,是否要向系统返回一个值。第二是否需要处理用户提供的命令行参数?如果是,他们将被保存到string数组中。

 

三、指定应用程序的错误代码

绝大多数的Main()方法会以void作为返回值,但是C#和其他C类型的语言一样,都可以从Main()返回一个int。根据惯例,返回值0表示程序正常结束,而其他值如(-1)表示程序有异常发生(要知道值0是自动返回的,即使Main()方法的原型结构返回为void)

 

四、在Main()方法中处理用户输入的命令行参数

在Main()方法中获取用户的命令行输入参数有很多中方法

1、通过传递给Main()方法的string[] args的参数中的args引用来对用户输入进行常规的操作

static int Main(string[] args)
{
   for(int i=0;i<args.length;i++)
   {
       Console.WriteLine("Arg:{0}",args[i]);
   }
   //foreach处理
   foreach(string Arg in args)
   {
       Console.WriteLine("Arg:{0}",Arg);
   }
}

2、通过VS自带的可视化工具指定命令行参数

3、通过System.Environment的方法来获取命令行参数

static int Main(string[] args)
{  
   string[] theArgs=Environment.GetCommandLineArgs();//通过System.Environment类来获取命令行参数
   for(int i=0;i<theArgs.length;i++)
   {
       Console.WriteLine("Arg:{0}",args[i]);
   }
   //foreach处理
   foreach(string Arg in theArgs)
   {
       Console.WriteLine("Arg:{0}",Arg);
   }
}