读书人

Visual C# 2005快速入门之编写方法,该

发布时间: 2012-02-19 19:43:39 作者: rapoo

Visual C# 2005快速入门之编写方法
在下面的练习中,将创建一个应用程序,它包含的一个方法能够计算一名顾问的收费金额——假定该顾问每天收取固定的费用,将根据工作了多少天来收费。首先要开发应用程序的逻辑,然后利用“生成方法存根向导”来写出这个逻辑使用的方法。接着,我们将在一个控制台应用程序中运行方法,以获得对该程序的最终印象。最后,我们将使用Visual Studio 2005调试器来检查方法调用。

  开发应用程序逻辑

  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 "); }





[解决办法]
好帖!学习了!
[解决办法]
mark
[解决办法]
jf
[解决办法]
mark
[解决办法]
学习

读书人网 >C++ Builder

热点推荐