《MYSQL數(shù)據(jù)庫(kù)C#編寫(xiě)方法實(shí)例》要點(diǎn):
本文介紹了MYSQL數(shù)據(jù)庫(kù)C#編寫(xiě)方法實(shí)例,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
?
開(kāi)發(fā)應(yīng)用程序邏輯
1.?在Visual?Studio?2005中打開(kāi)My?Documents文件夾下的\Microsoft?Press\Visual?CSharp?Step?by?Step\Chapter?3\DailyRate子文件夾中的DailyRate項(xiàng)目.
2.?在“解決方案資源管理器”中,雙擊Program.cs文件,以便在“代碼和文本編輯器”窗口中顯示程序.
3.?在run方法主體中添加以下語(yǔ)句:
double?dailyRate?=?readDouble("Enter?your?daily?rate:?");
int?noOfDays?=?readInt("Enter?the?number?of?days:?");
writeFee(calculateFee(dailyRate,?noOfDays));?
應(yīng)用程序啟動(dòng)時(shí),run方法將由Main方法調(diào)用.
剛才在run方法中添加的代碼塊會(huì)調(diào)用readDouble方法(馬上就要開(kāi)始寫(xiě)這個(gè)方法),以便讓用戶(hù)輸入顧問(wèn)的日費(fèi)率.下一個(gè)語(yǔ)句調(diào)用readInt方法(也馬上由我們來(lái)寫(xiě))來(lái)獲取天數(shù).最后將調(diào)用writeFee方法(等待編寫(xiě)),以便在屏幕上顯示結(jié)果.注意,傳給writeFee的值是calculateFee方法(最后一個(gè)要寫(xiě)的方法)返回的值,該方法獲取日費(fèi)率和天數(shù),并計(jì)算出要支付的總金額.
注意?由于尚未寫(xiě)好readDouble,readInt,writeFee或者calculateFee方法,所以“智能感知”無(wú)法在輸入上述代碼的時(shí)候自動(dòng)列出它們.另外,先不要試圖生成程序,因?yàn)榭隙〞?huì)失敗.
使用“生成方法存根向?qū)А眮?lái)編寫(xiě)方法
1.?在“代碼和文本編輯器”窗口中,單擊run方法中的readDouble方法調(diào)用.
隨后會(huì)在readDouble的第一個(gè)字母("r")下方顯示一個(gè)小的下劃線(xiàn)圖標(biāo).將鼠標(biāo)指針移至字母"r",會(huì)自動(dòng)出現(xiàn)一個(gè)圖標(biāo).將鼠標(biāo)指針懸停在這個(gè)圖標(biāo)上方,會(huì)顯示一條工具提示:“用于生成方法存根的選項(xiàng)(Shift?+?Alt?+?F10)”,并提供了一個(gè)下拉菜單.單擊下拉菜單,就會(huì)看到一個(gè)選項(xiàng):生成"DailyRate.Program"中的"ReadDouble"的方法存根.
2.?單擊“生成"DailyRate.Program"中的"ReadDouble"的方法存根”選項(xiàng).
隨后,“生成方法存根向?qū)А睍?huì)檢查對(duì)readDouble方法的調(diào)用,判斷參數(shù)類(lèi)型和返回值,并生成一個(gè)具有默認(rèn)實(shí)現(xiàn)的方法,如下所示:
private?double?readDouble(string?p)
{
????throw?new?Exception("The?method?or?operation?is?not?implemented.");
}?
新方法是使用一個(gè)private限定符來(lái)創(chuàng)建的.方法主體目前只是擲出一個(gè)異常.我們將在下一步將主體替換成自己的語(yǔ)句.
3.?從readDouble方法中刪除throw?new?Exception(…);語(yǔ)句,將它替換成以下代碼行:
Console.Write(p);
string?line?=?Console.ReadLine();
return?double.Parse(line);?
上述代碼塊會(huì)將變量p中的字符串輸出到屏幕.該變量是調(diào)用方法是傳遞的字符串參數(shù),其中包含提示用戶(hù)輸入日費(fèi)率的一條消息.用戶(hù)輸入一個(gè)值,該值將通過(guò)ReadLine方法讀入一個(gè)字符串中,并通過(guò)double.Parse方法轉(zhuǎn)換成一個(gè)double值.結(jié)果將作為方法調(diào)用的返回值傳回.
注意?ReadLine方法是與WriteLine配套的一個(gè)方法,它從鍵盤(pán)讀取用戶(hù)直到按回車(chē)鍵之前的輸入.用戶(hù)輸入的文本將作為返回值傳回.
4.?在run方法中,單擊readInt方法調(diào)用,按照和前面一樣的過(guò)程,為readInt方法生成一個(gè)方法存根.
readInt方法將使用一個(gè)默認(rèn)的實(shí)現(xiàn)來(lái)生成.
?? 提示?為了生成一個(gè)方法存根,還可以右擊一個(gè)方法調(diào)用,并從彈出菜單中選擇“生成方法存根”.
5.?將readInt方法的主體替換成以下語(yǔ)句:
Console.Write(p);
string?line?=?Console.ReadLine();
return?int.Parse(line);?
? 這個(gè)代碼塊和readDouble方法的非常相似.惟一的區(qū)別是方法返回一個(gè)int值,所以要使用int.Parse方法將字符串轉(zhuǎn)換成整數(shù).
6.?右擊run方法中的calculateFee方法調(diào)用,選擇“生成方法存根”.
隨后會(huì)生成calculateFee方法:
private?object?calculateFee(double?dailyRate,?int?noOfDays)
{
????throw?new?Exception("The?method?or?operation?is?not?implemented");
}?
注意,“生成方法存根向?qū)А笔褂脗魅氲膶?shí)參名稱(chēng)來(lái)生成形參名稱(chēng)(當(dāng)然,假如覺(jué)得不合適,完全可以更改形參名稱(chēng)).更讓人感興趣的是方法的返回類(lèi)型,目前是object.這表明“生成方法存根向?qū)А睙o(wú)法根據(jù)當(dāng)前的上下文來(lái)確定方法應(yīng)該返回什么類(lèi)型的值.object類(lèi)型只是意味著一樣“東西”,在方法中添加具體的代碼時(shí),應(yīng)該把它修改成自己需要的類(lèi)型.
7.?修改calculateFee方法的定義,使它返回一個(gè)double值:
private?double?calculateFee?(double?dailyRate,?int?noOfDays)
{
????throw?new?Exception("The?method?or?operation?is?not?implemented");
}?
8.?將calculateFee方法的主體替換成以下語(yǔ)句,它計(jì)算兩個(gè)參數(shù)值的乘積來(lái)獲得需要支付的金額,并返回結(jié)果.
return?dailyRate?*?noOfDays;?
9.?右擊run方法中的writeFee方法調(diào)用,選擇“生成方法存根”.
隨后會(huì)生成writeFee方法.注意,“生成方法存根向?qū)А备鶕?jù)calculateFee方法的定義判斷出writeFee方法的參數(shù)應(yīng)該是一個(gè)double參數(shù).另外,方法調(diào)用沒(méi)有使用一個(gè)返回值,所以方法的類(lèi)型為void:
private?void?writeFee(double?p)
{
????...
}?
10.?在writeFee方法內(nèi)部輸入以下語(yǔ)句:
Console.WriteLine("The?consultant's?fee?is:?{0}",?p?*?1.1);?
?? 注意?這個(gè)版本的WriteLine方法演示了如何利用一個(gè)簡(jiǎn)單的格式字符串.{0}是一個(gè)占位符;在求值的時(shí)候,它會(huì)被字符串之后的表達(dá)式(p?*?1.1)的值替換掉.
11.?選擇“生成”|“生成解決方案”.
重構(gòu)代碼
Visual?Studio?2005非常有用的一項(xiàng)特性就是對(duì)代碼進(jìn)行重構(gòu).某些時(shí)候,我們需要在應(yīng)用程序的多個(gè)位置寫(xiě)相同的(或者非常相似的)代碼.在這種情況下,可以選定剛剛輸入的代碼塊,然后從菜單欄中選擇“重構(gòu)”|“提取方法”.隨后會(huì)出現(xiàn)“提取方法”對(duì)話(huà)框,提示你輸入一個(gè)新方法的名稱(chēng),該方法將用于包含你剛才輸入的代碼.請(qǐng)輸入方法名,并單擊“確定”.隨后,系統(tǒng)將創(chuàng)建這個(gè)方法,并將你剛才輸入的代碼轉(zhuǎn)移到其中,剛才輸入的代碼則被替換成對(duì)該方法的一個(gè)調(diào)用.“提取方法”還具有一定的智能,可以判斷方法是否應(yīng)該獲取任何參數(shù)和返回值.?
測(cè)試程序
1.?選擇“調(diào)試”|“開(kāi)始執(zhí)行(不調(diào)試)”,Visual?Studio?2005將生成程序,并運(yùn)行它.運(yùn)行時(shí)會(huì)顯示一個(gè)控制臺(tái)窗口.
2.?在Enter?Your?Daily?Rate(輸入日費(fèi)率)提示之后,請(qǐng)輸入525,然后按回車(chē)鍵.
3.?在Enter?The?Number?Of?Days(輸入天數(shù))提示之后,請(qǐng)輸入17,然后按回車(chē)鍵.
? 程序會(huì)在控制臺(tái)上顯示以下消息:
The?consultant's?fee?is:?9817.5
按回車(chē)鍵返回Visual?Studio?2005編程環(huán)境.
在最后一個(gè)練習(xí)中,將使用Visual?Studio?2005調(diào)試器,以比較慢的步調(diào)來(lái)運(yùn)行程序.你將看到每個(gè)方法被調(diào)用的時(shí)刻(這個(gè)行動(dòng)稱(chēng)為跳入),并看到每個(gè)return語(yǔ)句如何將控制返還給調(diào)用者(這個(gè)行動(dòng)稱(chēng)為跳出).進(jìn)入和離開(kāi)方法時(shí),都需要使用“調(diào)試”工具欄上的工具.然而,在調(diào)試模式中運(yùn)行應(yīng)用程序時(shí),相同的命令也可從“調(diào)試”菜單中選擇.
使用Visual?Studio?2005調(diào)試器依次執(zhí)行每個(gè)方法
1.?在“代碼和文本編輯器”窗口中,找到run方法.
2.?使鼠標(biāo)指針對(duì)準(zhǔn)run方法中的第一個(gè)語(yǔ)句.
run方法的第一個(gè)語(yǔ)句是:
double?dailyRate?=?readDouble("Enter?your?daily?rate:?");
3.?右擊該行的任何地方,從彈出菜單中選擇“運(yùn)行到光標(biāo)處”.
程序?qū)㈤_(kāi)始運(yùn)行,并在抵達(dá)run方法的第一個(gè)語(yǔ)句之后暫停.“代碼和文本編輯器”窗口左側(cè)的一個(gè)黃色箭頭指明了當(dāng)前語(yǔ)句,該語(yǔ)句還會(huì)用一個(gè)黃色背景來(lái)突出顯示.
4.?選擇“視圖”|“工具欄”,確定已經(jīng)勾選了“調(diào)試”工具欄.“調(diào)試”工具欄也許會(huì)停靠在其他工具欄旁邊.如果找不到這個(gè)工具欄,可以試著使用“視圖”菜單中的“工具欄”命令暫時(shí)隱藏它,并留意哪些按鈕從界面上消失了.重新顯示這個(gè)工具欄,就可以知道它應(yīng)該在什么位置出現(xiàn).
提示?要想將“調(diào)試”工具欄獨(dú)立出來(lái),請(qǐng)使用工具欄左側(cè)的控點(diǎn),把它拖放以“代碼和文本編輯器”窗口上方.
5.?單擊“調(diào)試”工具欄上的“逐語(yǔ)句”按鈕.這個(gè)行動(dòng)會(huì)使調(diào)試器跳入正在調(diào)用的方法.左側(cè)的黃色箭頭會(huì)指向readDouble方法的起始大括號(hào).再次單擊“逐語(yǔ)句”按鈕,指針會(huì)轉(zhuǎn)向第一個(gè)語(yǔ)句:Console.Write(p);
提示?按F11鍵的作用等同于單擊“調(diào)試”工具欄上的“逐語(yǔ)句”按鈕.
6.?單擊“調(diào)試”工具欄上的“逐過(guò)程”按鈕.這會(huì)導(dǎo)致方法執(zhí)行下一個(gè)語(yǔ)句而不調(diào)試它.黃色箭頭將指向方法的第二個(gè)語(yǔ)句,程序會(huì)在一個(gè)控制臺(tái)窗口中顯示“Enter?Your?Daily?Rate”提示(控制臺(tái)窗口可能隱藏在Visual?Studio?2005后面).
提示?按F10鍵的作用等同于單擊“調(diào)試”工具欄上的“逐過(guò)程”按鈕.
7.?單擊“調(diào)試”工具欄上的“逐過(guò)程”按鈕.這一次,黃色箭頭會(huì)消失,控制臺(tái)窗口將獲得焦點(diǎn),因?yàn)槌绦蛘趫?zhí)行Console.ReadLine方法,要求用戶(hù)輸入一些內(nèi)容.
8.?在控制臺(tái)窗口中輸入525,按回車(chē)鍵繼續(xù).
隨后,控制將返回Visual?Studio?2005.黃色箭頭將在方法的第三行出現(xiàn).
9.?不要做出任何單擊行動(dòng),請(qǐng)將鼠標(biāo)指針移至方法第二行或第三行對(duì)line變量的引用上(具體對(duì)準(zhǔn)哪一行無(wú)關(guān)緊要).
隨后會(huì)出現(xiàn)一條屏幕提示,它顯示了line變量的當(dāng)前值(525).利用這個(gè)特性,可以確定在逐方法執(zhí)行的時(shí)候,變量已經(jīng)設(shè)置成自己期望的一個(gè)值.
10.?單擊“調(diào)試”工具欄上的“跳出”按鈕.
這會(huì)導(dǎo)致當(dāng)前方法繼續(xù)無(wú)中斷地運(yùn)行,直到結(jié)束.當(dāng)readDouble方法執(zhí)行完畢之后,黃色箭頭會(huì)指回run方法的第一個(gè)語(yǔ)句.
?? 提示?按Shift?+?F11鍵的作用等同于單擊“調(diào)試”工具欄上的“跳出”按鈕.
11.?單擊“調(diào)試”工具欄上的“逐語(yǔ)句”按鈕.
黃色箭頭會(huì)移至run方法的第二個(gè)語(yǔ)句:
int?noOfDays?=?readInt("Enter?the?number?of?days:?");
12.?單擊“調(diào)試”工具欄上的“逐過(guò)程”按鈕.
這一次,選擇了直接運(yùn)行方法,而不逐語(yǔ)句地調(diào)試該方法.控制臺(tái)窗口將再次出現(xiàn),提示輸入一個(gè)天數(shù).
13.?在控制臺(tái)窗口中輸入17,按回車(chē)鍵繼續(xù).
控制將返回至Visual?Studio?2005.黃色箭頭將移至run方法的第三個(gè)語(yǔ)句:
writeFee(calculateFee(dailyRate,?noOfDays));
14.?單擊“調(diào)試”工具欄上的“逐語(yǔ)句”按鈕.
黃色箭頭將跳至calculateFee方法的起始大括號(hào)處.該方法將先于writeFee方法被調(diào)用.
15.?單擊“調(diào)試”工具欄上的“跳出”按鈕.
黃色箭頭將跳回run方法的第三個(gè)語(yǔ)句.
16.?單擊“調(diào)試”工具欄上的“逐語(yǔ)句”按鈕.
這一次,黃色箭頭將跳至writeFee方法的起始大括號(hào)處.
17.?讓鼠標(biāo)指針對(duì)準(zhǔn)方法定義中的p變量.
隨后將顯示p的值(8925.0).
18.?單擊“調(diào)試”工具欄上的“跳出”按鈕.
隨后會(huì)在控制臺(tái)窗口中顯示消息“The?consultant's?fee?is:?9817.5”(如果控制臺(tái)窗口隱藏在Visual?Studio?2005之后,請(qǐng)把它帶到前臺(tái)來(lái)顯示).黃色箭頭將返回run方法的第三個(gè)語(yǔ)句.
19.?單擊“調(diào)試”工具欄上的“繼續(xù)”按鈕,使程序連續(xù)運(yùn)行,而不在每個(gè)語(yǔ)句處暫停.
應(yīng)用程序?qū)⒁恢边\(yùn)行至結(jié)束.
?? 提示?還可以按F5鍵在調(diào)試器中繼續(xù)執(zhí)行.
恭喜!你已經(jīng)成功編寫(xiě)并調(diào)用了方法,并利用Visual?Studio?2005調(diào)試器對(duì)它們進(jìn)行了調(diào)試.MYSQL應(yīng)用
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/3259.html