近期開始接觸到在校學生、高校實習生和畢業生,在此說一下筆者對這些徘徊在職場門口的學生一些建議,希望能給這些初學者進入軟體開發行業帶來一些協助,使得畢業生能更順利的進入軟體開發公司開始職場生涯,人生來一個完美的轉彎。[袁永福著作權]
--------------------------------------
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函數後面就沒有代碼了,於是程式退出。[袁永福著作權]