用户名: 密码: 免费注册 忘记密码? 加入收藏 | 设为首页
Visual C# 2005快速入门之编写方法
学院首页 | 资讯中心 | 服务器软件 | 系统工具 | 系统软件 | 办公软件 | 聊天软件 | 多 媒 体 | 网页制作 | 网站运营 | 平面设计
艺术欣赏 | 数据库软件 | 程序开发 | 网络组建 | 源码下载 | 驱动下载 | 软件下载 | 电脑安全 | IT创业 | IT博客 | IT社区
硬件数码导航 | 硬件频道 | 本本频道 | MP3频道 | 相机频道 | 手机频道 | 显卡频道 | LCD 频道 | 音箱音频 | 行情 | 评测 | 导购
学院专题 软件 - 系统 - 办公 - 聊天 - 多媒体 - 网页制作 - IT创业 - 运营 - 平面 - 设计欣赏 - 数据库 - 程序 - 服务器 - 组网

 当前位置: 首页>>技术频道>>程序>>c#教程>>正文

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

日期:2006-9-15 4:21:12     来源:csdn   编辑:   

在下面的练习中,将创建一个应用程序,它包含的一个方法能够计算一名顾问的收费金额——假定该顾问每天收取固定的费用,将根据工作了多少天来收费 。 首先要开发应用程序的逻辑,然后利用“生成方法存根向导”来写出这个逻辑使用的方法 。 接着,我们将在一个控制台应用程序中运行方法,以获得对该程序的最终印象 。 最后,我们将使用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");
}

  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. 选择“生成”|“生成解决方案” 。

  提示 如果对语法已经充分熟悉,也可以通过直接在“代码和文本编辑器”窗口中输入的方式来编写方法 。 并非一定要使用“生成方法存根”选项 。

gigi_miao
  ▼ 下一篇新闻 C#箴言:定义常量的两种方法
  ▲ 上一篇新闻 没有了        网友发表观点请进入=>



我要纠错】【进入论坛交流】【关闭此页

文章搜索
   
最新文章

 
·千名爱好者参与首届PHP调查
·腾讯称QQ通讯信息密钥加密 不会被
·雅虎反超Google排名搜索第二
·中搜等十余家IT企业因流氓软件被
·盛大前员工克隆网游装备获暴利被
·凤凰网将向迅雷提供娱乐及宽带内
·信产部出手规范 新浪式企业法律架
·雅虎中国称旗下软件早已没有流氓
·中搜停止划词搜索与流氓软件决裂

广告赞助
相关文章 相关教程下载
焦点信息
·腾讯称QQ通讯信息密钥加密 不会被监听
·信产部出手规范 新浪式企业法律架构不得不改
·盛大前员工克隆网游装备获暴利被追刑责
·凤凰网将向迅雷提供娱乐及宽带内容
·雅虎中国称旗下软件早已没有流氓问题
·雅虎反超Google排名搜索第二
网友评论:(评论内容只代表网友观点,与本站立场无关!)
发表评论     Hard168社区推荐帖子
姓 名: *
* 请网友遵纪守法并注意语言文明。
IT人物推荐

王江民
马云
柳传志



关于本站    联络方式    广告服务    意见信箱    加入收藏   设为首页    -
本站部分内容来自网上,如有侵权部分,敬请告知,我们会在24小时内给予处理
版权所有:Hard168.Com,如需转载文章请与我们取得联系
京ICP备05063857号 Designed by Hard168.Com
Visual C# 2005快速入门之编写方法