還記得讀大學時初識電腦程式設計時的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:walkingp@126.com * 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呼叫程式執行的回傳結果,根據結果來判斷程式是否順利執行。回傳類型在控制台中並不顯示"
以上就是C#難點逐一擊破(4):main函數的內容,更多相關內容請關注PHP中文網(www.php.cn)!