`
wangpan80
  • 浏览: 108808 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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"); }
 
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调试器对它们进行了调试.
 
 
分享到:
评论

相关推荐

    Visual C# 2005从入门到精通

    《Visual C# 2005从入门到精通》是一本专为初学者设计的编程教程,旨在帮助读者全面掌握Microsoft的C#编程语言及其在Visual Studio 2005环境下的应用。这本书覆盖了从基础语法到高级特性的全方位学习路径,确保读者...

    visual C#2005从入门到精通 周靖 译

    《Visual C# 2005从入门到精通》是由周靖翻译的一本经典教程,旨在帮助初学者和有一定基础的开发者系统学习和掌握Visual C# 2005编程语言。这本书涵盖了C#的基础知识、.NET Framework的核心概念以及如何利用Visual ...

    Visual C# 2005入门经典

    《Visual C# 2005入门经典》是一本针对初学者的编程指南,它旨在帮助读者快速掌握C#编程语言及其在Visual Studio 2005开发环境中的应用。这本书可能涵盖了C#语言的基础语法、面向对象编程概念、Windows应用程序开发...

    新编Visual C# 2005程序设计从入门到精通-2

    《新编Visual C# 2005程序设计从入门到精通》这本书是针对初学者和进阶者的一本全面教程,旨在帮助读者掌握使用Visual C# 2005进行软件开发的基本技能和高级技巧。书中涵盖了C#语言的核心概念、.NET Framework的基础...

    Visual C# 2005从入门到精通(练习文件)

    《Visual C# 2005从入门到精通》是一本深入浅出的教程,旨在帮助初学者和有一定基础的开发者全面掌握C#编程语言及其在.NET Framework 2.0环境下的应用。这本书的重点在于实践,通过丰富的练习文件,让读者能够理论与...

    c#2005开发入门经典——visual c# 2005 开发技术

    《C# 2005开发入门经典——Visual C# 2005开发技术》是一本专为初学者设计的教程,旨在帮助读者迅速掌握C#编程语言的基础与精髓。该压缩包包含了10个PDF文件,每个文件对应一个独立的板块,全面覆盖了C# 2005开发的...

    Visual C# 2010从入门到精通

    《Visual C# 2010从入门到精通》坚持以语言为基础和应用为主导的编写原则,详细介绍了如何使用Visual C# 2010开发控件台应用程序、Windows窗体应用程序等。为了更好地帮助读者在短时间内掌握使用C#语言开发各种应用...

    Visual C#2010从入门到精通(中文版).pdf

    标题《Visual C#2010从入门到精通(中文版)》和描述表明,本文档是一本关于学习和掌握Visual C#2010的教程书籍。Visual C#2010是一种由微软公司开发的编程语言,属于.NET平台的一部分,是用于构建各种类型应用程序...

    Visual C# 2005入门与提高源码

    总的来说,通过《Visual C# 2005入门与提高源码》,学习者可以系统地掌握C#语言的基本知识,并逐步提升到能够编写实际应用程序的水平。每章的源码实例提供了动手实践的机会,这是理解编程概念和提高编程技能的关键。...

    Visual C# 2005 入门

    《Visual C# 2005 入门》是一本专为初学者设计的编程教材,旨在引导读者快速掌握Visual C# 2005这一强大的编程语言。Visual C#是微软公司推出的.NET Framework框架下的主要开发工具,2005版本更是其发展中的一个重要...

    完整版 Visual C# 2008从入门到精通(微软技术丛书) John Sharp 周靖 随书实例源代码 高压 解压后10多兆 源码

    《完整版 Visual C# 2008 从入门到精通》是微软技术丛书中的一本,由John Sharp和周靖联合编著。这本书旨在帮助初学者和有经验的程序员全面掌握C#语言,深入理解.NET Framework,并通过实际操作来提升编程技能。随书...

    Visual C# 2010从入门到精通 源代码、勘误、附录、易读版.1-5章.25-29章

    《Visual C# 2010从入门到精通》是一本深入浅出的编程教材,专为初学者和有一定基础的开发者设计。该书涵盖了C#语言的基础知识、.NET Framework平台以及Visual Studio 2010开发环境的使用。通过学习这本书,读者可以...

    Visual C# 2010从入门到精通(Visual C# 2010 Step by Step)

    《Visual C# 2010从入门到精通》是一本专为初学者设计的编程教程,旨在帮助读者深入理解并熟练掌握Visual C# 2010这门强大的编程语言。这本书通过逐步指导的方式,将复杂的编程概念与实践操作相结合,使学习过程更为...

    新编Visual C# 2005程序设计从入门到精通-1

    《新编Visual C# 2005程序设计从入门到精通》是一本全面介绍C#编程语言的书籍,特别适合初学者和有一定基础的程序员深入学习。Visual C# 2005是.NET Framework 2.0的一部分,是微软公司推出的面向对象的编程语言,它...

    Microsoft Visual C# 2008从入门到精通

    《Visual C# 2008从入门到精通》以最新的.NET 3.5和Visual C# 2008为基础循序渐进地介绍了从入门到深入掌握Visual C# 2008所需的各个方面,包括开发环境的配置、C#语法、Windows应用程序开发、处理文件和注册表,...

    Beginning Visual C# 2005(C#入门经典 第三版)(下)

    c#入门经典 第三版之英文版 本书适合于想学习使用.NET Framework编写C#程序的初级读者,也适合于已了解.NET 1.0,而想学习.NET 2.0和Visual Studio 2005最新功能的读者。 此为Beginning Visual C# 2005(C#入门经典 ...

    visual c#2010 从入门到精通

    从给定的文件信息来看,知识点主要集中在标题和描述中提到的《Visual C# 2010 从入门到精通》这本书,以及.NET技术的介绍和学习资源的获取方式。为了详细说明这些知识点,下面将会分别进行介绍。 首先,"Visual C# ...

    Visual C#游戏编程入门 英文版.pdf

    ### Visual C# 游戏编程入门相关知识点解析 #### 一、书籍基本信息 - **书名**:《Visual C# 游戏编程入门》(英文版) - **作者**:Jonathan S. Harbour - **出版社**:Course Technology PTR,属于 Cengage ...

Global site tag (gtag.js) - Google Analytics