Visual C# 2005 程式設計 第 3 章開始撰寫 Visual C# 2005 程式
程式設計之流程 需求 Requirements 設計 Design 分析 Analysis 撰寫程式 Coding 驗證 Verification 結束
程式設計之流程 需求 (Requirements) 需要的輸入 輸出 ( 包函資料庫大小輸出格式 等 )? 設計 (Design) 找出解決問題的方法 步驟 ( 公式 演算法及邏輯關係 ) 分析 (Analysis) 將可能之設計方法都列出並尋求最有效率的演算法 撰寫程式 (Coding) 尋求較易完成設計的程式語言將需求完成 驗證 (Verification) 證明 : 輸入預訂資料證明輸出符合需求 測試 : 輸入非預期之各種資料以測試程式不出錯 除錯 : 若證明或測試出錯則找出錯誤處並更正
3-1 Visual Basic 2005 的新增功能 新增 Continue 陳述式 允許程式設計人員直接使用類別名稱存取表單, 無須建立其物件 新增 IsNot 運算子 新增 Using 陳述式 允許程式設計人員宣告混合不同存取層級的屬性 新增 UShort UInteger ULong 三種無號型別及 SByte 一種有號型別, 同時允許變數的值為 Null 支援運算子重載 (operator overloading) 支援部分類別 (partial class) 支援泛型 (generic)
以 Custom 關鍵字做為 Event 陳述式的修飾詞, 以宣告自訂事件 提供七個新的編譯器命令列選項 如果有程式碼包含 Common Language Specification (CLS) 不支援的規格或作業,Visual Basic 2005 會產生警告 如果有程式碼包含未初始化的變數, 會產生警告 可以透過 Visual Basic 2005 新增的關鍵字 My 存取.NET Framework 的常用功能及電腦的資源
3-2 撰寫您的第一個 Visual Basic 2005 程式 設計流程 : 1. 建立專案 2. 建立使用者介面 3. 自訂外觀 4. 加入 Visual Basic 程式碼 5. 編譯與執行程式
例子 :
3-2-1 新增專案 1. 啟動 Visual Studio 2005, 然後從功能表列選取 [ 檔案 ] \ [ 新增專案 ] 2. 螢幕上會出現 [ 新增專案 ] 對話方塊 :
3.
3-2-2 建立使用者介面 ( 在表單上放置控制項 )
3-2-3 自訂外觀 ( 設定表單與控制項的屬性 ) 設定表單的屬性 1. 選取表單, 然後找到 [Text] 屬性 2. 輸入新值 我的第一個程式
設定按鈕的屬性 1. 2.
3-2-4 加入 Visual Basic 程式碼 1. 在方案總管內找到 Form1.vb, 然後按一下滑鼠右鍵, 從快顯功能表中選取 [ 程式碼檢視 ] 2.
3.
4.
5.
3-2-5 編譯與執行程式 請按 [F5] 鍵或點取標準工具列的 [ 開始偵錯 ] 按鈕
3-2-6 儲存檔案 專案與方案
3-2-7 關閉檔案 專案與方案 如果只要關閉 Windows Form 設計工具或目前正在編輯的檔案, 可以點取 Windows Form 設計工具或程式碼視窗右上角的 [ 關閉 ] 按鈕 如果要關閉專案及方案, 可以從功能表列選取 [ 檔案 ] \ [ 關閉方案 ]
3-2-8 開啟檔案 專案與方案 如果要開啟專案或方案, 可以從功能表列選取 [ 檔案 ] \ [ 開啟 ] \ [ 專案 / 方案 ], 然後在 [ 開啟專案 ] 對話方塊中選擇所要開啟的專案或方案
3-3 Visual Basic 2005 程式撰寫慣例 Visual Studio 2005 是以一個方案 (solution) 管理一或多個專案 (project), 一個專案又可以包含一或多個組件 (assembly), 而組件是由一或多個原始程式檔編譯而成的.exe 檔或.dll 檔, 至於原始程式檔是由類別 (class) 結構 (structure) 模組 (module) 或介面 (interface) 所組成, 而類別 結構 模組或介面是由一行行的敘述 (statement, 又稱為陳述式 ) 所組成, 敘述則是由關鍵字 (keyword) 特殊字元 (special character) 或識別字 (identifier) 所組成
方案 專案 ( 一 ) 專案 ( 二 ) 組件 ( 一 ) 組件 ( 二 ) 組件 ( 三 ) 程式 1 程式 2 程式 3 : : 類別 結構 模組 : : 敘述 statement 敘述包含 : 關鍵字 ( 保留字 reserved word): Dim, Integer, for next 特殊字元 : ():,_,& 識別字 : 設計者定義之變數 常數等
3-3-1 Visual Basic 2005 程式結構 撰寫程式時應遵守之先後順序 1. Option 陳述式 ( 程式最前端 ) Option Explicit {On Off}( 預設為 on): 變數使用前必須宣告 Option Strict {On Off}( 預設為 off): 允許程式自動產生型別轉換 Option Compare {Binary Text} }( 預設為 Binary): 字串比較 時根據其二進碼故大小寫不同
2. Imports 陳述式, 例如 : 將 System.Windows.Forms.ListBox 命名空間內定為 LBControl 使用 List Box 時可如下 : Imports LBControl = System.Windows.Forms.ListBox Dim LBC As LBControl 3. Namespace 陳述式 程式設計者可指定命名空間內定為專案名稱
4. 條件編譯陳述式 在程式中置入條件編譯陳述式方便偵錯 ( 只在編譯時執行 ) #if #end if 5. Main() 程序 : 程式起點 Sub Main() Sub Main(ByVal cmdargs() As String) Function Main() As Integer Function Main(ByVal cmdargs() As String) As Integer
3-3-2 Visual Basic 2005 命名規則 所有名稱必須以英文字母或底線 (_) 開頭, 不能以數字開頭, 中間可以是英文字母 ( 不區分大小寫 ) 數字或底線的組合, 最大長度不得超過 1023 個字元 不能中斷或使用 Visual Basic 2005 的陳述式 內建的物件 / 程序 / 列舉 / 結構 / 類別 / 事件名稱 型別字元 特殊字元或空白, 同時建議不要使用 Visual Basic 2005 的關鍵字 每個單字建議以大寫字母開頭, 例如 UserName MyFirstForm 程序名稱建議以動詞開頭, 例如 InitializeComponent 類別 結構 模組或屬性名稱建議以名詞開頭, 例如 CarData 介面名稱建議以大寫字母 I 開頭, 例如 IComponent 事件程序名稱建議以 EventHandler 結尾, 例如 MouseEventHandler 對於經常使用的名稱, 可以使用合理的簡寫, 例如以 XML 代替 extensible Markup Language 避免以單一字元命名, 在相同有效範圍內必須唯一
3-3-3 Visual Basic 2005 程式碼註解 以單引號 ' 或 REM 關鍵字來表示註解 3-3-4 Visual Basic 2005 程式碼縮排 例如 : Module Module11 Sub Main() MsgBox("Hello World!") End Sub End Module
3-3-5 Visual Basic 2005 程式碼分行與合併 如果要將一個敘述分行, 必須在分行之前加上空白字元和底線 (_), 例如 : Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click 如果要將多個敘述合併成一行, 必須以冒號 (:) 分隔, 例如 : TextBox1.Text = "Hello" : TextBox1.BackColor = Color.Red
3-4 小錦囊 ( 一 ) 如何使用 MsgBox() 函式? MsgBox(Prompt[, Buttons[, Title]]) 例如 : MsgBox(" 大家好 " & Chr(10) & " 請多多指教 ", _ MsgBoxStyle.Information + MsgBoxStyle.OKCancel, " 示範 ")
第二個參數的值 數值 說 明 MsgBoxStyle.DefaultButton1 0 第 1 個按鈕是預設的按鈕 MsgBoxStyle.DefaultButton2 256 第 2 個按鈕是預設的按鈕 MsgBoxStyle.DefaultButton3 512 第 3 個按鈕是預設的按鈕 MsgBoxStyle.ApplicationModal 0 須在對話方塊中作答程式才能繼續 MsgBoxStyle.SystemModal 4096 須在對話方塊中作答程式才能繼續 MsgBoxStyle.MsgBoxSetForeground 65536 將對話方塊設為前景視窗 MsgBoxStyle.MsgBoxRight 524288 將對話方塊中的文字向右對齊 MsgBoxStyle.MsgBoxRtReading 1048576 在希伯來系統中文字由右向左閱讀 第二個參數可以合併使用例 : MsgBox( 大家好 "&ch(10)" 請多多指教 ", _ MsgBoxStyle.Information+MsgBoxStyle.OKCancel," 示範 ")
MsgBox() 函式的傳回值代表使用者點取之按鈕 傳回值 數值 點取之按鈕 傳回值 數值 點取之按鈕 Ok 1 [ 確定 ] 按鈕 Cancel 2 [ 取消 ] 按鈕 Abort 3 [ 中止 ] 按鈕 Retry 4 [ 重試 ] 按鈕 Ignore 5 [ 忽略 ] 按鈕 Yes 6 [ 是 ] 按鈕 No 7 [ 否 ] 按鈕
3-5 小錦囊 ( 二 ) 如何使用 InputBox() 函式? InputBox(Prompt[, Title[, DefaultResponse[, XPos[, YPos]]]]) 1. Prompt: 提示之訊息最大長度 1024 字元 2. Title: 方塊之標題列, 無指定則以程式名稱 3. DefaultResponse: 指定之預設值 4. Xpos: 開始顯示方塊之水平位置內定 1/2 開始 5. Ypos: 開始顯示方塊之垂直位置內定 1/3 開始 不用之參數以 "", 省略例如 : InputBox(" 請輸入第一個數字 ", " 輸入數字 1")
3-6 小錦囊 ( 三 ) 如何在表單載入時就執行程式? 我們來示範如何在表單載入時就執行程式 : 1. 關閉目前開啟的方案, 然後新增一個名稱為 MyProj3-2 的方案 2.
3.
4.
5. 執行完程式自動關閉表單
3-7 小錦囊 ( 四 ) 如何撰寫 Main() 程序? 我們來示範如何不要載入表單, 而是直接出現對話方塊要求使用者輸入數字 : 1.
2.
3.
4.
Main() 程序有下列四種形式 : Sub Main() Sub Main(ByVal cmdargs() As String) Function Main() As Integer Function Main() As Integer MsgBox("Hello World!") Return 0 End Function Function Main(ByVal cmdargs() As String) As Integer