清醒时做事,糊涂时读书,大怒时睡觉,无聊时关注图老师为大家准备的精彩内容。下面为大家推荐Visual C# 2005快速入门之编写方法,无聊中的都看过来。
【 tulaoshi.com - 编程语言 】
在下面的练习中,将创建一个应用程序,它包含的一个方法能够计算一名顾问的收费金额假定该顾问每天收取固定的费用,将根据工作了多少天来收费。首先要开发应用程序的逻辑,然后利用生成方法存根向导来写出这个逻辑使用的方法。接着,我们将在一个控制台应用程序中运行方法,以获得对该程序的最终印象。最后,我们将使用Visual Studio 2005调试器来检查方法调用。
开发应用程序逻辑
1. 在Visual Studio 2005中打开My Documents文件夹下的Microsoft PressVisual CSharp Step by StepChapter 3DailyRate子文件夹中的DailyRate项目。
2. 在解决方案资源管理器中,双击Program.cs文件,以便在代码和文本编辑器窗口中显示程序。
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)3. 在run方法主体中添加以下语句:
double dailyRate = readDouble("Enter your daily rate: ");int noOfDays = readInt("Enter the number of days: ");writeFee(calculateFee(dailyRate, noOfDays));(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)
应用程序启动时,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");}
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. 选择生成|生成解决方案。
提示 如果对语法已经充分熟悉,也可以通过直接在代码和文本编辑器窗口中输入的方式来编写方法。并非一定要使用生成方法存根选项。
重构代码
Visual Studio 2005非常有用的一项特性就是对代码进行重构。某些时候,我们需要在应用程序的多个位置写相同的(或者非常相似的)代码。在这种情况下,可以选定刚刚输入的代码块,然后从菜单栏中选择重构|提取方法。随后会出现提取方法对话框,提示你输入一个新方法的名称,该方法将用于包含你刚才输入的代码。请输入方法名,并单击确定。随后,系统将创建这个方法,并将你刚才输入的代码转移到其中,刚才输入的代码则被替换成对该方法的一个调用。提取方法还具有一定的智能,可以判断方法是否应该获取任何参数和返回值。
测试程序
1. 选择调试|开始执行(不调试),Visual Studio 2005将生成程序,并运行它。运行时会显示一个控制台窗口。
2. 在Enter Your Daily Rate(输入日费率)提示之后,请输入525,然后按回车键。
3. 在Enter The Number Of Days(输入天数)提示之后,请输入17,然后按回车键。
程序会在控制台上显示以下消息:
The consultant’s fee is: 9817.5
按回车键返回Visual Studio 2005编程环境。
在最后一个练习中,将使用Visual Studio 2005调试器,以比较慢的步调来运行程序。你将看到每个方法被调用的时刻(这个行动称为跳入),并看到每个return语句如何将控制返还给调用者(这个行动称为跳出)。进入和离开方法时,都需要使用调试工具栏上的工具。然而,在调试模式中运行应用程序时,相同的命令也可从调试菜单中选择。
使用Visual Studio 2005调试器依次执行每个方法
1. 在代码和文本编辑器窗口中,找到run方法。
2. 使鼠标指针对准run方法中的第一个语句。
run方法的第一个语句是:
double dailyRate = readDouble("Enter your daily rate: ");
3. 右击该行的任何地方,从弹出菜单中选择运行到光标处。
来源:http://www.tulaoshi.com/n/20160219/1609492.html
看过《Visual C# 2005快速入门之编写方法》的人还看了以下文章 更多>>