C#程序之Main()方法


一、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);
   }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM