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

全面掌握Visual C# 2005编程从入门到实践 本文还有配套的精品资源,点击获取 简介:《Visual C# 2005从入门到精通》是一本面向初学者的编程教程,涵盖了从基础到高级的C#编程知识,详细介绍了.NET Framework 2.0下的Visual C# 2005开发环境。书中分阶段介绍了C#的基本概念、面向对象编程、泛型、异常处理、调试技术、Windows和Web应用开发,以及通过实践练习巩固所学。本书旨在让读... 阅读详情

在下面的练习中,将创建一个应用程序,它包含的一个 方法 能够计算一名顾问的收费金额——假定该顾问每天收取固定的费用,将根据工作了多少天来收费。首先要开发应用程序的逻辑,然后利用“生成方法存根向导”来写出这个逻辑使用的方法。

接着,我们将在一个控制台应用 程序 中运行方法,以获得对该程序的最终印象。最后,我们将使用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. 选择“生成”|“生成解决方案”。

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

  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. 右击该行的任何地方,从弹出菜单中选择“运行到光标处”。

  程序将开始运行,并在抵达run方法的第一个语句之后暂停。“代码和文本编辑器”窗口左侧的一个黄色箭头指明了当前语句,该语句还会用一个黄色背景来突出显示。

  4. 选择“视图”|“工具栏”,确定已经勾选了“调试”工具栏。“调试”工具栏也许会停靠在其他工具栏旁边。如果找不到这个工具栏,可以试着使用“视图”菜单中的“工具栏”命令暂时隐藏它,并留意哪些按钮从界面上消失了。重新显示这个工具栏,就可以知道它应该在什么位置出现。

  提示 要想将“调试”工具栏独立出来,请使用工具栏左侧的控点,把它拖放以“代码和文本编辑器”窗口上方。

  5. 单击“调试”工具栏上的“逐语句”按钮。这个行动会使调试器跳入正在调用的方法。左侧的黄色箭头会指向readDouble方法的起始大括号。再次单击“逐语句”按钮,指针会转向第一个语句:Console.Write(p);

  提示 按F11键的作用等同于单击“调试”工具栏上的“逐语句”按钮。

  6. 单击“调试”工具栏上的“逐过程”按钮。这会导致方法执行下一个语句而不调试它。黄色箭头将指向方法的第二个语句,程序会在一个控制台窗口中显示“Enter Your Daily Rate”提示(控制台窗口可能隐藏在Visual Studio 2005后面)。

  提示 按F10键的作用等同于单击“调试”工具栏上的“逐过程”按钮。

  7. 单击“调试”工具栏上的“逐过程”按钮。这一次,黄色箭头会消失,控制台窗口将获得焦点,因为程序正在执行Console.ReadLine方法,要求用户输入一些内容。

  8. 在控制台窗口中输入525,按回车键继续。

  随后,控制将返回Visual Studio 2005。黄色箭头将在方法的第三行出现。

  9. 不要做出任何单击行动,请将鼠标指针移至方法第二行或第三行对line变量的引用上(具体对准哪一行无关紧要)。

  随后会出现一条屏幕提示,它显示了line变量的当前值(525)。利用这个特性,可以确定在逐方法执行的时候,变量已经设置成自己期望的一个值。

  10. 单击“调试”工具栏上的“跳出”按钮。

  这会导致当前方法继续无中断地运行,直到结束。当readDouble方法执行完毕之后,黄色箭头会指回run方法的第一个语句。

  提示 按Shift + F11键的作用等同于单击“调试”工具栏上的“跳出”按钮。

  11. 单击“调试”工具栏上的“逐语句”按钮。

  黄色箭头会移至run方法的第二个语句:

int noOfDays = readInt("Enter the number of days: ");

  12. 单击“调试”工具栏上的“逐过程”按钮。

  这一次,选择了直接运行方法,而不逐语句地调试该方法。控制台窗口将再次出现,提示输入一个天数。

  13. 在控制台窗口中输入17,按回车键继续。

  控制将返回至Visual Studio 2005。黄色箭头将移至run方法的第三个语句:

writeFee(calculateFee(dailyRate, noOfDays));

  14. 单击“调试”工具栏上的“逐语句”按钮。

  黄色箭头将跳至calculateFee方法的起始大括号处。该方法将先于writeFee方法被调用。

  15. 单击“调试”工具栏上的“跳出”按钮。

  黄色箭头将跳回run方法的第三个语句。

  16. 单击“调试”工具栏上的“逐语句”按钮。

  这一次,黄色箭头将跳至writeFee方法的起始大括号处。

  17. 让鼠标指针对准方法定义中的p变量。

  随后将显示p的值(8925.0)。

  18. 单击“调试”工具栏上的“跳出”按钮。

  随后会在控制台窗口中显示消息“The consultant’s fee is: 9817.5”(如果控制台窗口隐藏在Visual Studio 2005之后,请把它带到前台来显示)。黄色箭头将返回run方法的第三个语句。

  19. 单击“调试”工具栏上的“继续”按钮,使程序连续运行,而不在每个语句处暂停。

   应用 程序将一直运行至结束。

  提示 还可以按F5键在调试器中继续执行。

  恭喜!你已经成功编写并调用了方法,并利用Visual Studio 2005调试器对它们进行了调试。 align="center" marginwidth="0" marginheight="0" src="http://o.thec.cn/jms003/GGFILECODE336x280.html" frameborder="0" scrolling="no">
全面掌握Visual C# 2005开发技术 本文还有配套的精品资源,点击获取 简介:《Visual C# 2005开发技术》深入讲解C#编程语言核心概念、.NET Framework基础及Visual Studio 2005软件开发方法。本书涵盖了面向对象编程、控制流语句、数组与集合、函数与委托、异常处理、CLR、应用程序域、类库、IDE使用、项目管理、调试工具、设计师、数据库访问、***、LINQ、Web编程、AJ... 阅读详情

相关推荐

使用Visual Studio 2005/C# 开发连连看游戏

方法是C#中执行特定任务的代码块。

weixin_30798867的博客 976

vs 2005调试

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

luckymar的专栏 1435

快速入门:Visual Studio 2005 IDE精简指南

Visual Studio 2005 是一款由微软公司开发的集成开发环境(IDE),主要用于开发.NET Framework应用程序。自发布以来,它就因其强大的功能和用户友好的界面被广大开发人员所青睐。Visual Studio 2005 提供了代码编辑、调试、数据库设计以及项目管理等工具,极大地提高了软件开发效率。快速访问功能是Visual Studio提供的一个强大的特性,它允许用户快速地查找和执行命令,而无需深入了解其具体位置。你可以通过Ctrl + Q。

weixin_30661119的博客 789

VS2005 DEBUG状态下修改代码(VS2005 使用技巧)

因为最近同事说VS2005调试慢,所以才想起这个问题。我一般能不调试就不调试,主要也是因为调试太慢,而且自己也尽量避免调试,否则确实有很多时间在调试的等待过程ing。一般咱也就这么将就过去了。(*^__^*)。 没记错的话,应该是刚装完的VS2005可以在DEBUG模式下修改代码的,但不知道为什么在我们的项目中,VS2005就不能在调试状态下修改代码。找来一些相关资料。VS2005把这个功能称为“...

我的鱼塘 286

零基础学习Visual Studio C# 2005编程指南

C#(发音为“看”)是一种由微软开发的面向对象的编程语言,它是由Anders Hejlsberg领导的一个团队设计出来的,最初是为了开发.NET平台。自从2002年首次推出以来,C#已经走过了多个版本,每个版本都引入了新的特性和改进,比如泛型、LINQ、async/await等,使其成为构建各种应用程序的强大工具。开发者可以使用继承的方式来创建自定义控件。通过继承现有的控件类并重写其方法或属性,可以创建出具有特定功能的控件。// 获取图形对象// 绘制一个椭圆作为按钮的背景。

weixin_34547628的博客 876

PLSQL 14.0.6 下载使用教程

众所周知,PLSQL 只是一个oracle第三方开发测试工具,它依赖oracle 客户端搭配使用,但是oracle 客户端有2G,相当庞大,不建议安装。所以我们如果下载安装好PLSQL,再下载好轻量级的支持远程链接的oracle客户端,这样搭配使用可以的话就最好了,答案是可以的。 第一步: PLSQL 下载与安装 PLSQL 14.0.6 下载地址 : https://www.allroundautomations.com/registered-plsqldev/ 下载下来,除了安装路径更改一下,

qq976511508的博客 2134

VS2005调试问题解决方案集锦[转]

这个是转自优快云上边,原创为德仔工作室 1.检测到有潜在危险的Request.Form值 原因: (1)在提交数据的页面或webconfig中没有对validateRequest的属性进行正确的设置 (2)HTML里面写了两个<form>引起 解决: 方案一:在.aspx文件头中加入这句:<%@Pagevalidat...

354

飞塔防火墙和paloalto防火墙构建ipsec

一、配置fortigate防火墙1.防火墙配置上网功能1.1配置fortigate的wan1接口IP为100.100.100.2/24VLAN交换internal,IP地址为192.168.156.99/24。开启DHCP分配IP地址范围为192.168.156.110-192.168.156.2101.2配置访问互联网的缺省路由1.3配置访问互联网的安全策略2.配置与Paloalto防火墙的IPSECVPN。

weixin_44675999的博客 3739

Visual Studio 2005中编译调试新功能

最近学习asp.net 2.0时新编译修改的一篇文章,原文发表在http://dev.yesky.com/msdn/359/2195359.shtml上,现转到这里。   在日常的编程中,程序员经常离不开的工作之一,就是调试。当写好一段代码或程序后,在运行后总会出现这样那样的问题,比如各样的错误,程序员就必须进行调试,将这些错误排除。在最新出炉的Visual Studio 2005中,将提供十分强...

jackyrongvip的专栏 207

ArcGIS+PLUS+InVEST三件套实战:从零搞定土地利用变化与碳储量预测(附完整数据包)

本文详细介绍了如何整合ArcGIS、PLUS模型和InVEST模型,构建土地利用变化与碳储量预测的完整研究流水线。通过多情景模拟和生态系统服务评估,提供从数据准备到结果验证的实战指南,助力研究者高效完成生态评估项目。

weixin_30399821的博客 543

06-esp32-idf开发调试方法(内置JTAG,OpenOCD调试)

使用VS Code和ESP-IDF进行ESP32开发和调试 在我们搭建 **IDF** 框架后,**OpenOCD** 已经自动下载好了, 我们通过 **JTAG** 接口连接使用 **OpenOCD** 进行调试。而**ESP32**芯片中内置 了**JTAG** 电路,无需额外芯片即可调试,更加方便,所以这里我们讲解使用模块自带的usb-jtag接口进行调试。

宁子希的博客 1万+

【C/C++语言入门篇】-- 调试基础

通过前面两篇,相信大家已经基本了解了我们的研究思路。既然是研究,那么必须的研究工具就得熟练掌握了。这里我所指的研究工具就是VC,我所使用的VC版本是2005。本文也将根据VC2005进行探讨。可能很多朋友或者初学者还是使用的VC6.0。在这里本人不推荐使用VC6.0。原因很简单,VC6.0已经过时了,后面的版本比VC6.0更强大方便。可能也是因为众多经典的程序设计书籍使用的都是VC6.0。有的朋友

技术思行 1万+

从零开始:手把手教你设计DP接口电路(含原理图实战)

本文是一份详尽的DisplayPort接口电路设计实战指南。文章从DP接口的核心架构与HDMI的差异讲起,手把手解析了高速差分对、AUX辅助通道、热插拔检测等关键模块的原理图设计要点,并提供了一个完整的DP Source端原理图实例,最后总结了PCB布局与信号完整性的核心考量,旨在帮助硬件工程师高效、稳定地完成DP接口电路设计。

transformer2023的博客 735

Visual C# 2005快速入门之调用方法

方法之所以存在就是为了被调用!使用方法名来调用一个方法,要求它执行它的任务。如果方法要获取信息(由它的参数指定),就必须提供它需要的信息。如果方法要返回信息(由它的返回类型指定),就应该以某种方式来捕捉这个信息。   指定方法调用语法   为了调用一个C#方法,需要采用如下语法形式: methodName (argumentList)   methodName(方法名)必须与调用的那个方...

hududanyzd 113

手把手教你:在openEuler 22.03上离线搞定OpenSSH 9.8升级(CentOS 7.9通用)

本文详细介绍了在openEuler 22.03和CentOS 7.9系统上离线升级OpenSSH 9.8的完整流程,包括准备工作、离线包获取、安装步骤、服务管理及回滚方案。特别针对无外网环境的企业服务器,提供安全可靠的离线升级解决方案,帮助运维人员有效提升系统安全性。

weixin_30682415的博客 192

自抗扰控制(ADRC)理论与工程实践:8.2 模糊ADRC、神经网络ADRC等智能融合变体

智能融合ADRC变体概述 自抗扰控制(ADRC)与智能控制方法(如模糊逻辑、神经网络)的融合,旨在突破传统ADRC在非线性、时变系统中的应用局限。智能融合ADRC主要通过以下方式实现性能提升: 模糊ADRC 参数自整定:利用模糊推理在线调节ADRC带宽参数,实现自适应控制。 非线性反馈:用模糊控制器替代线性PD,灵活设计非线性控制策略。 优势:融入专家经验,无需精确模型;局限:依赖规则库设计,稳定性分析困难。 神经网络ADRC 增强ESO:用神经网络学习扰动动态,提高估计精度。

技术工作者 228

《Visual C# 2005入门经典》学习总结

        经过将近半个月的时间把James Foxall的 《Visual C# 2005入门经典》读了一遍,智者总归是智者,能够让读者这么容易去接受一门语言。现在我我从书中看到的一些东西总结一番。       书中按照24小时来写这本书,共分24章,总体感觉这本书很少借助代码来说明问题,更多的是借助了属性栏,让初学者看到了成品,但没有看到代码的内在含义,这跟是不同的两个方向,所以初学者

薛敬明的专栏 1164

安全运营面试总结

答案可以在我的博客中查找 1.自我介绍 2.TCP/IP七层模式 3.端口号(常见协议 数据库) 4.Owasp top 10 5.渗透测试过程 6.漏扫工具 7.中间件漏洞 8.应急响应 9.项目 10.SQL注入类型 11.TCP 三次握手 四次挥手 12.你有什么要问我的 1.自我介绍 2.项目介绍 3.宽字节注入的原理 4.渗透流程 5....

qq_51577576的博客 4413

用Visual Studio 2005进行程序开发

VC#2005快速入门之复合赋值操作符 前

cqfz123的专栏 4019

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Visual Studio 2005开发资料

ark1111的专栏 2718

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Beginning Visual C# 2005 Express Edition: From Novice to Professional

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.youkuaiyun.com/topmvp - topmvpIn the 90s, Microsoft did the impossible and released a programming tool that let everyone write programs to

TopMVP 639

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

上一篇: 汇总c#.net常用函数和方法集
下一篇: C#基础学习 —— 异步编程篇
JMS_003
博客等级 码龄19年 5粉丝 1原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值