VisualC#2005快速入門(mén)之編寫(xiě)方法

字號(hào):

在下面的練習(xí)中,將創(chuàng)建一個(gè)應(yīng)用程序,它包含的一個(gè)方法能夠計(jì)算一名顧問(wèn)的收費(fèi)金額——假定該顧問(wèn)每天收取固定的費(fèi)用,將根據(jù)工作了多少天來(lái)收費(fèi)。首先要開(kāi)發(fā)應(yīng)用程序的邏輯,然后利用“生成方法存根向?qū)А眮?lái)寫(xiě)出這個(gè)邏輯使用的方法。接著,我們將在一個(gè)控制臺(tái)應(yīng)用程序中運(yùn)行方法,以獲得對(duì)該程序的最終印象。最后,我們將使用Visual Studio 2005調(diào)試器來(lái)檢查方法調(diào)用。
    開(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è)方法),以便讓用戶輸入顧問(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è)小的下劃線圖標(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ù)類型和返回值,并生成一個(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ù),其中包含提示用戶輸入日費(fèi)率的一條消息。用戶輸入一個(gè)值,該值將通過(guò)ReadLine方法讀入一個(gè)字符串中,并通過(guò)double.Parse方法轉(zhuǎn)換成一個(gè)double值。結(jié)果將作為方法調(diào)用的返回值傳回。
    注意 ReadLine方法是與WriteLine配套的一個(gè)方法,它從鍵盤(pán)讀取用戶直到按回車鍵之前的輸入。用戶輸入的文本將作為返回值傳回。