3.3 運行程序
理解了源程序中每條代碼的具體含義後,下一步要做的就是讓這個程序真正能夠運行。不過對源代碼即使還有不明白的地方也沒有關系,在後續章節的學習中,您最終會熟練掌握這些概念的。
如果您的電腦上安裝了Visual Studio.Net,則可以在集成開發環境(Integrated Developer Environment,IDE)中直接選擇快捷鍵或菜單命令,編譯並執行源文件。
如果您不具備這個條件,那麼您至少需要安裝Microsoft.Net Framework SDK,這樣才能夠不妨礙您在本書中繼續學習C#語言。實際上,.Net平台內置了C#的編譯器。
下面讓我們使用這個微軟提供的命令行編譯器對我們的程序進行編譯。
啟動一個命令行提示符,在屏幕上輸入一行命令:
csc welcome.cs
我們假設您已經將welcome.cs文件保存在當前目錄下。如果一切正常,welcome.cs文件將被編譯、運行,屏幕上出現一行字符,提示您輸入姓名:
Please enter your name:
輸入任意個字符並按下回車鍵,屏幕將打印出歡迎信息:
Welcome to you!
注意:和目前為止我們使用過的絕大多數編譯器不同,在C#中,編譯器只執行編譯這個過程,而在C和C++中要經過編譯和鏈接兩個階段。換而言之,C#源文件並不被編譯為目標文件(.obj),而是直接生成可執行文件(.exe)或動態鏈接庫(.dll)。C#編譯器中不需要包含鏈接器。
編譯選項
我們可以靈活地使用.Net平台提供的命令行編譯器的不同選項,選擇不同的編譯方式,從而靈活地對編譯進行控制。
例如,如果我們希望對源文件welcome.cs進行編譯,生成名為MyWelcome.exe的可執行文件,我們可以采用這樣的命令:
csc/out: MyWelcome.exe welcome.cs
如果我們並不需要一個可執行文件,而僅僅是希望簡單地檢查源文件中是否存在語法錯誤,則命令可以寫成:
csc/nooutput: welcome.cs
如果不知道各個選項的具體含義,可以通過求助來獲得:
csc/?
為方便讀者,我們在表3-1中按字母排序的順序列出了命令行編譯器csc常用的參數及其用途。更詳細的信息請參閱C#聯機幫助文檔。
表3-1 命令行編譯器選項
選項 作用 @ 指定響應文件 /? 列出編譯命令選項 /addmodule 指定一個或多個模塊作為裝配的一部分 /baseaddress 指定載入動態鏈接庫的首選地址 /bugreport 生成一個報告文件,其中包含程序Bug的詳細信息 /checked 指定算術運算的溢出是否會導致程序在運行時拋出一個異常 /codepage 指定編譯的所有源文件所使用的代碼頁 /debug 給出調試信息 /define 定義預處理程序的符號 /doc 由文件注釋生成XML文件 /fullpaths 指定輸出的絕對路徑 /help 列出編譯命令選項 /incremental 允許對源文件進行遞增式編譯 /linkresouce 在裝配時鏈接指定的NET資源 /main 指定Main方法所處的位置 /nologo 編譯過程中不顯示編譯信息 /nooutput 編譯源文件但不輸出 /nowarn 編譯過程中不生成警告信息 /optimize 指定編譯時是否進行優化 /out 指定輸出文件 /recurse 搜索子目錄以尋找源文件 /reference 從包含裝配的文件中導入元數據 /resource 把NEt資源內嵌到輸出文件 /target 指定輸出文件的格式 /target:exe 輸出文件為exe可執行文件 /target:library 輸出文件為鏈接庫 /target:module 輸出文件為模塊 /target:winexe 輸出文件為winexe可執行文件 /unsafe 允許編譯使用了不安全關鍵字的代碼 /warn 設置警告級別 /warnaserror 把警告信息作為錯誤看待 /win32icon 把.ico圖標文件插入到輸出文件 /win32res 把Win32資源插入到輸出文件