還記得讀大學時初識計算機編程時的C語言,Main(){},那時還不明白入口函數是什麼意思,只知道照抄書本上的示例,一行一行地跑printf看。
在C#中Main()屬於主入口函數,我們知識C、C#屬於編譯語言,可以想象為一段程序最開始的頭部部分,由Main()函數進入逐語句進行編譯後執行。假如html頁面也稱作編程語言的話,那麼它就屬於從上到下一句一句(下載)執行;js也是由上到下執行,不過js相當詭異,變量作用域要特別對待;在asp.net中一般情況下是以Page_Load(object sender,EventArgs e)可以認為是主入口。
Main()中的string[] args參數
Main()函數必須使用static修飾,也就是說它必須是靜態的,不可實例化——可以實例化的話程序就完蛋了(多線程!?)。默認的Main()函數是帶形式參數的,形如static void Main(string[] args),這裡面一個很至關重要的問題就是:很多人都認為其中的參數僅當程序涉及要求用戶輸入參數值才必須帶上。這就大錯特錯了,我之前也是這麼理解的,直接今天我在寫這篇文章時查詢資料時才知道。請參考下面的代碼
代碼如下:
using System;
/******************************
* Chapter:C#難點逐個擊破(四)
* Author:王洪劍
* Date:2010-1-15
* Blog:http://www.51obj.cn/
* Email:
[email protected] * Description:容易出錯的Main參數理解
* ***************************/
namespace TestMain
{
class Program
{
static void Main()//此處沒有加string[] args
{
Console.WriteLine("請輸入您的姓:");
String firstName = Console.ReadLine();
Console.WriteLine("請輸入您的名:");
String lastName = Console.ReadLine();
Console.WriteLine("您的姓名是:{0}{1}", firstName, lastName);
}
}
}
其次就是參數的類型只能是string[],否則就會編譯錯誤
那麼該參數是起什麼作用的呢?舉個例子你就知道了,notepad c:\boot.ini,或者IEXPLORER.exe http://www.g.cn,沒錯,裡面的參數就是用來編譯exe要加入的參數,比如我們可以加一個參數min或者hide,然後加入相應的代碼就可以實現程序運行時最小化運行或者隱藏運行。
Main()函數的返回值
Main()默認無返回類似,除此之外,還可以返回int,並且僅能返回int,這種返回int的使用情況並不多,在msdn描述到了使用批處理bat調用程序執行的返回結果,根據結果來判斷程序是否順利執行。返回類型在控制台中並不顯示"
本節源碼下載