近期開始接觸到在校學生、高校實習生和畢業生,在此說一下筆者對這些徘徊在職場門口的學生一些建議,希望能給這些初學者進入軟件開發行業帶來一些幫助,使得畢業生能更順利的進入軟件開發公司開始職場生涯,人生來一個完美的轉彎。
----------------------------------------------------------------
Main函數
C#中的Windows應用程序和命令行程序編譯後的結果是EXE文件,而EXE文件是需要定義啟動程序的入口點。這個入口點在C#中就是main函數,這點和C語言很類似。
在“第一個Windows應用程序”的C#工程中一開始就包含了一個“Program.cs”的源代碼文件,該文件內容如下。[袁永福版權所有]
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace第一個Windows應用程序
{
staticclassProgram
{
/// <summary>
/// 應用程序的主入口點。
/// </summary>
[STAThread]
staticvoid Main()
{
Application.EnableVisualStyles( );
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(newForm1( ));
}
}
}
這個文件中就定義了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(newForm1( ))”是創建一個窗體對象並運行該窗體。這個函數是同步的,只要窗體沒有關閉,該函數就不會返回,當窗體關閉了,該函數返回,然後Main函數後面就沒有代碼了,於是程序退出。[袁永福版權所有]
本文出自 “南京袁永福” 博客