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. 選擇“生成”|“生成解決方案”。
提示 如果對語法已經充分熟悉,也可以通過直接在“代碼和文本編輯器”窗口中輸入的方式來編寫方法。並非一定要使用“生成方法存根”選項。