在下面的練習(xí)中,將創(chuàng)建一個應(yīng)用程序,它包含的一個方法能夠計(jì)算一名顧問的收費(fèi)金額——假定該顧問每天收取固定的費(fèi)用,將根據(jù)工作了多少天來收費(fèi)。首先要開發(fā)應(yīng)用程序的邏輯,然后利用“生成方法存根向?qū)А眮韺懗鲞@個邏輯使用的方法。接著,我們將在一個控制臺應(yīng)用程序中運(yùn)行方法,以獲得對該程序的最終印象。最后,我們將使用Visual Studio 2005調(diào)試器來檢查方法調(diào)用。
開發(fā)應(yīng)用程序邏輯
1. 在Visual Studio 2005中打開My Documents文件夾下的\Microsoft Press\Visual CSharp Step by Step\Chapter 3\DailyRate子文件夾中的DailyRate項(xiàng)目。
2. 在“解決方案資源管理器”中,雙擊Program.cs文件,以便在“代碼和文本編輯器”窗口中顯示程序。
3. 在run方法主體中添加以下語句:
double dailyRate = readDouble("Enter your daily rate: ");
int noOfDays = readInt("Enter the number of days: ");
writeFee(calculateFee(dailyRate, noOfDays));
應(yīng)用程序啟動時(shí),run方法將由Main方法調(diào)用。
剛才在run方法中添加的代碼塊會調(diào)用readDouble方法(馬上就要開始寫這個方法),以便讓用戶輸入顧問的日費(fèi)率。下一個語句調(diào)用readInt方法(也馬上由我們來寫)來獲取天數(shù)。最后將調(diào)用writeFee方法(等待編寫),以便在屏幕上顯示結(jié)果。注意,傳給writeFee的值是calculateFee方法(最后一個要寫的方法)返回的值,該方法獲取日費(fèi)率和天數(shù),并計(jì)算出要支付的總金額。
注意 由于尚未寫好readDouble,readInt,writeFee或者calculateFee方法,所以“智能感知”無法在輸入上述代碼的時(shí)候自動列出它們。另外,先不要試圖生成程序,因?yàn)榭隙〞 ?BR> 使用“生成方法存根向?qū)А眮砭帉懛椒?BR> 1. 在“代碼和文本編輯器”窗口中,單擊run方法中的readDouble方法調(diào)用。
隨后會在readDouble的第一個字母("r")下方顯示一個小的下劃線圖標(biāo)。將鼠標(biāo)指針移至字母"r",會自動出現(xiàn)一個圖標(biāo)。將鼠標(biāo)指針懸停在這個圖標(biāo)上方,會顯示一條工具提示:“用于生成方法存根的選項(xiàng)(Shift + Alt + F10)”,并提供了一個下拉菜單。單擊下拉菜單,就會看到一個選項(xiàng):生成"DailyRate.Program"中的"ReadDouble"的方法存根。
2. 單擊“生成"DailyRate.Program"中的"ReadDouble"的方法存根”選項(xiàng)。
隨后,“生成方法存根向?qū)А睍z查對readDouble方法的調(diào)用,判斷參數(shù)類型和返回值,并生成一個具有默認(rèn)實(shí)現(xiàn)的方法,如下所示:
private double readDouble(string p)
{
throw new Exception("The method or operation is not implemented.");
}
新方法是使用一個private限定符來創(chuàng)建的。方法主體目前只是擲出一個異常。我們將在下一步將主體替換成自己的語句。
3. 從readDouble方法中刪除throw new Exception(…);語句,將它替換成以下代碼行:
Console.Write(p);
string line = Console.ReadLine();
return double.Parse(line);
上述代碼塊會將變量p中的字符串輸出到屏幕。該變量是調(diào)用方法是傳遞的字符串參數(shù),其中包含提示用戶輸入日費(fèi)率的一條消息。用戶輸入一個值,該值將通過ReadLine方法讀入一個字符串中,并通過double.Parse方法轉(zhuǎn)換成一個double值。結(jié)果將作為方法調(diào)用的返回值傳回。
注意 ReadLine方法是與WriteLine配套的一個方法,它從鍵盤讀取用戶直到按回車鍵之前的輸入。用戶輸入的文本將作為返回值傳回。
開發(fā)應(yīng)用程序邏輯
1. 在Visual Studio 2005中打開My Documents文件夾下的\Microsoft Press\Visual CSharp Step by Step\Chapter 3\DailyRate子文件夾中的DailyRate項(xiàng)目。
2. 在“解決方案資源管理器”中,雙擊Program.cs文件,以便在“代碼和文本編輯器”窗口中顯示程序。
3. 在run方法主體中添加以下語句:
double dailyRate = readDouble("Enter your daily rate: ");
int noOfDays = readInt("Enter the number of days: ");
writeFee(calculateFee(dailyRate, noOfDays));
應(yīng)用程序啟動時(shí),run方法將由Main方法調(diào)用。
剛才在run方法中添加的代碼塊會調(diào)用readDouble方法(馬上就要開始寫這個方法),以便讓用戶輸入顧問的日費(fèi)率。下一個語句調(diào)用readInt方法(也馬上由我們來寫)來獲取天數(shù)。最后將調(diào)用writeFee方法(等待編寫),以便在屏幕上顯示結(jié)果。注意,傳給writeFee的值是calculateFee方法(最后一個要寫的方法)返回的值,該方法獲取日費(fèi)率和天數(shù),并計(jì)算出要支付的總金額。
注意 由于尚未寫好readDouble,readInt,writeFee或者calculateFee方法,所以“智能感知”無法在輸入上述代碼的時(shí)候自動列出它們。另外,先不要試圖生成程序,因?yàn)榭隙〞 ?BR> 使用“生成方法存根向?qū)А眮砭帉懛椒?BR> 1. 在“代碼和文本編輯器”窗口中,單擊run方法中的readDouble方法調(diào)用。
隨后會在readDouble的第一個字母("r")下方顯示一個小的下劃線圖標(biāo)。將鼠標(biāo)指針移至字母"r",會自動出現(xiàn)一個圖標(biāo)。將鼠標(biāo)指針懸停在這個圖標(biāo)上方,會顯示一條工具提示:“用于生成方法存根的選項(xiàng)(Shift + Alt + F10)”,并提供了一個下拉菜單。單擊下拉菜單,就會看到一個選項(xiàng):生成"DailyRate.Program"中的"ReadDouble"的方法存根。
2. 單擊“生成"DailyRate.Program"中的"ReadDouble"的方法存根”選項(xiàng)。
隨后,“生成方法存根向?qū)А睍z查對readDouble方法的調(diào)用,判斷參數(shù)類型和返回值,并生成一個具有默認(rèn)實(shí)現(xiàn)的方法,如下所示:
private double readDouble(string p)
{
throw new Exception("The method or operation is not implemented.");
}
新方法是使用一個private限定符來創(chuàng)建的。方法主體目前只是擲出一個異常。我們將在下一步將主體替換成自己的語句。
3. 從readDouble方法中刪除throw new Exception(…);語句,將它替換成以下代碼行:
Console.Write(p);
string line = Console.ReadLine();
return double.Parse(line);
上述代碼塊會將變量p中的字符串輸出到屏幕。該變量是調(diào)用方法是傳遞的字符串參數(shù),其中包含提示用戶輸入日費(fèi)率的一條消息。用戶輸入一個值,該值將通過ReadLine方法讀入一個字符串中,并通過double.Parse方法轉(zhuǎn)換成一個double值。結(jié)果將作為方法調(diào)用的返回值傳回。
注意 ReadLine方法是與WriteLine配套的一個方法,它從鍵盤讀取用戶直到按回車鍵之前的輸入。用戶輸入的文本將作為返回值傳回。