C#痛點逐個擊破(4):main函數

來源:互聯網
上載者:User

還記得讀大學時初識電腦編程時的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調用程式執行的返回結果,根據結果來判斷程式是否順利執行。傳回型別在控制台中並不顯示"
本節源碼下載

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.