《MYSQL数据库C#编写方法实例》要点: 本文介绍了MYSQL数据库C#编写方法实例,希望对您有用。如果有疑问,可以联系我们。
?
开发应用程序逻辑
1.?在Visual?Studio?2005中打开My?Documents文件夹下的Microsoft?PressVisual?CSharp?Step?by?StepChapter?3DailyRate子文件夹中的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调试器对它们进行了调试.MYSQL应用 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|