注意 這個版本的WriteLine方法演示了如何利用一個簡單的格式字符串。{0}是一個占位符;在求值的時候,它會被字符串之後的表達式(p * 1.1)的值替換掉。
11. 選擇“生成”|“生成解決方案”。
提示 如果對語法已經充分熟悉,也可以通過直接在“代碼和文本編輯器”窗口中輸入的方式來編寫方法。並非一定要使用“生成方法存根”選項。
重構代碼
Visual Studio 2005非常有用的一項特性就是對代碼進行重構。某些時候,我們需要在應用程序的多個位置寫相同的(或者非常相似的)代碼。在這種情況下,可以選定剛剛輸入的代碼塊,然後從菜單欄中選擇“重構”|“提取方法”。隨後會出現“提取方法”對話框,提示你輸入一個新方法的名稱,該方法將用於包含你剛才輸入的代碼。請輸入方法名,並單擊“確定”。隨後,系統將創建這個方法,並將你剛才輸入的代碼轉移到其中,剛才輸入的代碼則被替換成對該方法的一個調用。“提取方法”還具有一定的智能,可以判斷方法是否應該獲取任何參數和返回值。
測試程序
1. 選擇“調試”|“開始執行(不調試)”,Visual Studio 2005將生成程序,並運行它。運行時會顯示一個控制台窗口。
2. 在Enter Your Daily Rate(輸入日費率)提示之後,請輸入525,然後按回車鍵。
3. 在Enter The Number Of Days(輸入天數)提示之後,請輸入17,然後按回車鍵。
程序會在控制台上顯示以下消息:
The consultant’s fee is: 9817.5
按回車鍵返回Visual Studio 2005編程環境。
在最後一個練習中,將使用Visual Studio 2005調試器,以比較慢的步調來運行程序。你將看到每個方法被調用的時刻(這個行動稱為跳入),並看到每個return語句如何將控制返還給調用者(這個行動稱為跳出)。進入和離開方法時,都需要使用“調試”工具欄上的工具。然而,在調試模式中運行應用程序時,相同的命令也可從“調試”菜單中選擇。
使用Visual Studio 2005調試器依次執行每個方法
1. 在“代碼和文本編輯器”窗口中,找到run方法。
2. 使鼠標指針對准run方法中的第一個語句。
run方法的第一個語句是:
double dailyRate = readDouble("Enter your daily rate: ");
3. 右擊該行的任何地方,從彈出菜單中選擇“運行到光標處”。
程序將開始運行,並在抵達run方法的第一個語句之後暫停。“代碼和文本編輯器”窗口左側的一個黃色箭頭指明了當前語句,該語句還會用一個黃色背景來突出顯示。
4. 選擇“視圖”|“工具欄”,確定已經勾選了“調試”工具欄。“調試”工具欄也許會停靠在其他工具欄旁邊。如果找不到這個工具欄,可以試著使用“視圖”菜單中的“工具欄”命令暫時隱藏它,並留意哪些按鈕從界面上消失了。重新顯示這個工具欄,就可以知道它應該在什麼位置出現。
提示 要想將“調試”工具欄獨立出來,請使用工具欄左側的控點,把它拖放以“代碼和文本編輯器”窗口上方。
5. 單擊“調試”工具欄上的“逐語句”按鈕。這個行動會使調試器跳入正在調用的方法。左側的黃色箭頭會指向readDouble方法的起始大括號。再次單擊“逐語句”按鈕,指針會轉向第一個語句:Console.Write(p);
提示 按F11鍵的作用等同於單擊“調試”工具欄上的“逐語句”按鈕。
6. 單擊“調試”工具欄上的“逐過程”按鈕。這會導致方法執行下一個語句而不調試它。黃色箭頭將指向方法的第二個語句,程序會在一個控制台窗口中顯示“Enter Your Daily Rate”提示(控制台窗口可能隱藏在Visual Studio 2005後面)。
提示 按F10鍵的作用等同於單擊“調試”工具欄上的“逐過程”按鈕。
7. 單擊“調試”工具欄上的“逐過程”按鈕。這一次,黃色箭頭會消失,控制台窗口將獲得焦點,因為程序正在執行Console.ReadLine方法,要求用戶輸入一些內容。
8. 在控制台窗口中輸入525,按回車鍵繼續。
隨後,控制將返回Visual Studio 2005。黃色箭頭將在方法的第三行出現。
9. 不要做出任何單擊行動,請將鼠標指針移至方法第二行或第三行對line變量的引用上(具體對准哪一行無關緊要)。
隨後會出現一條屏幕提示,它顯示了line變量的當前值(525)。利用這個特性,可以確定在逐方法執行的時候,變量已經設置成自己期望的一個值。
10. 單擊“調試”工具欄上的“跳出”按鈕。
這會導致當前方法繼續無中斷地運行,直到結束。當readDouble方法執行完畢之後,黃色箭頭會指回run方法的第一個語句。
提示 按Shift + F11鍵的作用等同於單擊“調試”工具欄上的“跳出”按鈕。
11. 單擊“調試”工具欄上的“逐語句”按鈕。
黃色箭頭會移至run方法的第二個語句:
int noOfDays = readInt("Enter the number of days: ");
12. 單擊“調試”工具欄上的“逐過程”按鈕。
這一次,選擇了直接運行方法,而不逐語句地調試該方法。控制台窗口將再次出現,提示輸入一個天數。
13. 在控制台窗口中輸入17,按回車鍵繼續。
控制將返回至Visual Studio 2005。黃色箭頭將移至run方法的第三個語句:
writeFee(calculateFee(dailyRate, noOfDays));
14. 單擊“調試”工具欄上的“逐語句”按鈕。
黃色箭頭將跳至calculateFee方法的起始大括號處。該方法將先於writeFee方法被調用。
15. 單擊“調試”工具欄上的“跳出”按鈕。
黃色箭頭將跳回run方法的第三個語句。
16. 單擊“調試”工具欄上的“逐語句”按鈕。
這一次,黃色箭頭將跳至writeFee方法的起始大括號處。
17. 讓鼠標指針對准方法定義中的p變量。
隨後將顯示p的值(8925.0)。
18. 單擊“調試”工具欄上的“跳出”按鈕。
隨後會在控制台窗口中顯示消息“The consultant’s fee is: 9817.5”(如果控制台窗口隱藏在Visual Studio 2005之後,請把它帶到前台來顯示)。黃色箭頭將返回run方法的第三個語句。
19. 單擊“調試”工具欄上的“繼續”按鈕,使程序連續運行,而不在每個語句處暫停。
應用程序將一直運行至結束。
提示 還可以按F5鍵在調試器中繼續執行。
恭喜!你已經成功編寫並調用了方法,並利用Visual Studio 2005調試器對它們進行了調試。