[畢業生的商業軟體開發之路]C#中的Main函數

來源:互聯網
上載者:User

近期開始接觸到在校學生、高校實習生和畢業生,在此說一下筆者對這些徘徊在職場門口的學生一些建議,希望能給這些初學者進入軟體開發行業帶來一些協助,使得畢業生能更順利的進入軟體開發公司開始職場生涯,人生來一個完美的轉彎。[袁永福著作權]
--------------------------------------

Main函數

C#中的Windows應用程式和命令列程式編譯後的結果是EXE檔案,而EXE檔案是需要定義啟動程式的進入點。這個進入點在C#中就是main函數,這點和C語言很類似。

在“第一個Windows應用程式”的C#工程中一開始就包含了一個“Program.cs”的原始碼檔案,該檔案內容如下。

 

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace 第一個Windows應用程式
{
    static class Program
    {
        /// <summary>
        /// 應用程式的主進入點。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles( );
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1( ));
        }
    }
}

 

這個檔案中就定義了Main函數,一個C#的Windows應用程式或者命令列程式中有而且只有一個Main函數。

在Main函數前面的代碼“[STAThread]”通知了編譯器該函數是採用單線程模式的。

在此處Main函數沒有定義參數和傳回值,實際上Main函數可以定義個int類型的傳回值,還可以定義一個字串數群組類型的參數,如“int Main( string[ ] args )”,這樣可以獲得命令列參數了,一般情況下具有圖形化使用者介面的Windows應用程式不需要支援命令列參數,但命令列應用程式比較依賴命令列參數來調用功能。[袁永福著作權]

除了在Main函數中獲得命令列參數,開發人員可以在任何地方使用類型System.Environment的CommandLine靜態屬性獲得啟動程式使用的命令列文本,也可以使用該類型的GetCommandLineArgs靜態方法獲得啟動程式使用的命令列參數。

命令列文本是一個字串,例如在Windows命令列介面中使用命令“c:\my.exe  *.jpg \a \s”, Environment類型的CommandLine屬性值為“c:\my.exe  *.jpg \a \s”,而它的GetCommandLineArgs方法返回一個有4個元素的字串數組,數組值為“c:\my.exe”、“*.jpg”、“\a”、“\s”。[袁永福著作權]

Main函數中的代碼“Application.EnableVisualStyles( )”是讓整個應用程式啟動了XP樣式。

當Windows應用程式啟動XP樣式時,使用者介面顯示如下圖。

若沒有啟動XP樣式時,使用者介面顯示如。

Main函數中的代碼“Application.Run(new Form1( ))”是建立一個表單對象並運行該表單。這個函數是同步的,只要表單沒有關閉,該函數就不會返回,當表單關閉了,該函數返回,然後Main函數後面就沒有代碼了,於是程式退出。[袁永福著作權]

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.