《MYSQL數據庫C#編寫方法實例》要點:
本文介紹了MYSQL數據庫C#編寫方法實例,希望對您有用。如果有疑問,可以聯系我們。
?
開發應用程序邏輯
1.?在Visual?Studio?2005中打開My?Documents文件夾下的\Microsoft?Press\Visual?CSharp?Step?by?Step\Chapter?3\DailyRate子文件夾中的DailyRate項目.
2.?在“解決方案資源管理器”中,雙擊Program.cs文件,以便在“代碼和文本編輯器”窗口中顯示程序.
3.?在run方法主體中添加以下語句:
double?dailyRate?=?readDouble("Enter?your?daily?rate:?");
int?noOfDays?=?readInt("Enter?the?number?of?days:?");
writeFee(calculateFee(dailyRate,?noOfDays));?
應用程序啟動時,run方法將由Main方法調用.
剛才在run方法中添加的代碼塊會調用readDouble方法(馬上就要開始寫這個方法),以便讓用戶輸入顧問的日費率.下一個語句調用readInt方法(也馬上由我們來寫)來獲取天數.最后將調用writeFee方法(等待編寫),以便在屏幕上顯示結果.注意,傳給writeFee的值是calculateFee方法(最后一個要寫的方法)返回的值,該方法獲取日費率和天數,并計算出要支付的總金額.
注意?由于尚未寫好readDouble,readInt,writeFee或者calculateFee方法,所以“智能感知”無法在輸入上述代碼的時候自動列出它們.另外,先不要試圖生成程序,因為肯定會失敗.
使用“生成方法存根向導”來編寫方法
1.?在“代碼和文本編輯器”窗口中,單擊run方法中的readDouble方法調用.
隨后會在readDouble的第一個字母("r")下方顯示一個小的下劃線圖標.將鼠標指針移至字母"r",會自動出現一個圖標.將鼠標指針懸停在這個圖標上方,會顯示一條工具提示:“用于生成方法存根的選項(Shift?+?Alt?+?F10)”,并提供了一個下拉菜單.單擊下拉菜單,就會看到一個選項:生成"DailyRate.Program"中的"ReadDouble"的方法存根.
2.?單擊“生成"DailyRate.Program"中的"ReadDouble"的方法存根”選項.
隨后,“生成方法存根向導”會檢查對readDouble方法的調用,判斷參數類型和返回值,并生成一個具有默認實現的方法,如下所示:
private?double?readDouble(string?p)
{
????throw?new?Exception("The?method?or?operation?is?not?implemented.");
}?
新方法是使用一個private限定符來創建的.方法主體目前只是擲出一個異常.我們將在下一步將主體替換成自己的語句.
3.?從readDouble方法中刪除throw?new?Exception(…);語句,將它替換成以下代碼行:
Console.Write(p);
string?line?=?Console.ReadLine();
return?double.Parse(line);?
上述代碼塊會將變量p中的字符串輸出到屏幕.該變量是調用方法是傳遞的字符串參數,其中包含提示用戶輸入日費率的一條消息.用戶輸入一個值,該值將通過ReadLine方法讀入一個字符串中,并通過double.Parse方法轉換成一個double值.結果將作為方法調用的返回值傳回.
注意?ReadLine方法是與WriteLine配套的一個方法,它從鍵盤讀取用戶直到按回車鍵之前的輸入.用戶輸入的文本將作為返回值傳回.
4.?在run方法中,單擊readInt方法調用,按照和前面一樣的過程,為readInt方法生成一個方法存根.
readInt方法將使用一個默認的實現來生成.
?? 提示?為了生成一個方法存根,還可以右擊一個方法調用,并從彈出菜單中選擇“生成方法存根”.
5.?將readInt方法的主體替換成以下語句:
Console.Write(p);
string?line?=?Console.ReadLine();
return?int.Parse(line);?
? 這個代碼塊和readDouble方法的非常相似.惟一的區別是方法返回一個int值,所以要使用int.Parse方法將字符串轉換成整數.
6.?右擊run方法中的calculateFee方法調用,選擇“生成方法存根”.
隨后會生成calculateFee方法:
private?object?calculateFee(double?dailyRate,?int?noOfDays)
{
????throw?new?Exception("The?method?or?operation?is?not?implemented");
}?
注意,“生成方法存根向導”使用傳入的實參名稱來生成形參名稱(當然,假如覺得不合適,完全可以更改形參名稱).更讓人感興趣的是方法的返回類型,目前是object.這表明“生成方法存根向導”無法根據當前的上下文來確定方法應該返回什么類型的值.object類型只是意味著一樣“東西”,在方法中添加具體的代碼時,應該把它修改成自己需要的類型.
7.?修改calculateFee方法的定義,使它返回一個double值:
private?double?calculateFee?(double?dailyRate,?int?noOfDays)
{
????throw?new?Exception("The?method?or?operation?is?not?implemented");
}?
8.?將calculateFee方法的主體替換成以下語句,它計算兩個參數值的乘積來獲得需要支付的金額,并返回結果.
return?dailyRate?*?noOfDays;?
9.?右擊run方法中的writeFee方法調用,選擇“生成方法存根”.
隨后會生成writeFee方法.注意,“生成方法存根向導”根據calculateFee方法的定義判斷出writeFee方法的參數應該是一個double參數.另外,方法調用沒有使用一個返回值,所以方法的類型為void:
private?void?writeFee(double?p)
{
????...
}?
10.?在writeFee方法內部輸入以下語句:
Console.WriteLine("The?consultant's?fee?is:?{0}",?p?*?1.1);?
?? 注意?這個版本的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調試器對它們進行了調試.MYSQL應用
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/3259.html