吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 2415|回复: 4

[C#] C#初级开发原创教程十二课 带参数的方法

[复制链接]
王尼玛 发表于 2014-10-19 23:24 | 显示全部楼层 |阅读模式

本帖最后由 王尼玛 于 2014-10-24 01:17 编辑

大家好,我是王尼玛。今天起我给大家讲解C#开发教程,本次是第十二课。大家在课后有什么疑问可以跟帖留言,我会尽我所能来解答。毕竟众口难调,大家有什么建议也可以跟帖告诉我。
此教程为本人原创,转载请注明"吾爱汇编论坛王尼玛原创"
好了,废话不多说,开始今天的学习.

有朋友说不太明白我写的教程,其实编程这东西很简单,一个字,练!你光看我写的多半是一头雾水,因为你没实际跟着我讲的代码去操作,你要跟着我的代码敲,多敲代码,多练习我给的例子,再配合我例子后面的讲解,自然就明白我讲的是什么了.还不明白?跟帖问吧


1.如何定义带参方法
通过前面的学习,我们知道,类的方法是一个功能模块,其作用是"做一件事情",实现某一个独立的功能,可供多个地方使用.在现实生活中,你使用过榨汁机吗?榨汁机提供了一个很好的"榨汁"功能.如果你放进去的是苹果,榨出来的就是苹果汁,如果放进去的是草莓,榨出来的就是草莓汁,如果你同时放入两种水果,榨出来的就是苹果草莓汁.如果什么都不放,就没办法榨汁了!因此,在使用榨汁机时,你必须提供一个被榨的水果.再比如说,使用ATM机取钱时,我们肯定是先要输入取款金额,然后ATM机才会"吐出"纸币.方法中某种功能的实现依赖于我们给它的作用体,这时候在定义方法时就需要在括号中加入参数列表
结合前面学习过的无参方法,现在给出定义类的方法的一般格式


语法:
  1. <访问修饰符> 返回类型 <方法名>(<参数列表>){
  2.          //方法的主体
  3. }
复制代码
其中:
  • <访问修饰符>指该方法允许被访问调用的权限范围,只能是public,protected或private.其中public访问修饰符表示该方法可以被任何其他代码调用,另外i啊两种修饰符将在后续课程中陆续学习
  • 返回类型指方法返回值的类型.如果方法不返回任何值,它应该声明为void类型,C#对待 返回值要求很严格,方法返回值必须与所说明的类型相匹配.使用return关键字返回值.
  • <方法名>是定义的方法的名字,它必须使用合法的标识符
  • <参数列表>是传送给方法的参数列表.列表中各参数间以逗号分割,每个参数由一个类型和一个标识符名组成.参数列表的格式为数据类型 参数1,数据类型 参数2,....数据类型 参数n,其中n>=0
示例1:
  1. public class StudentBiz
  2.     {
  3.         string[] name = new string[30];//学生姓名数组
  4.         public void addName(string name)//有参方法
  5.         {
  6.             //增加学生姓名
  7.         }
  8.         public void showName()//无参方法
  9.         {
  10.             //显示全部学生姓名
  11.         }
  12.     }
复制代码
示例定义了一个学生信息管理类StudentBiz,包含学生姓名数组的属性,增加学生姓名的方法,其中方法addName(string name)实现学生姓名的增加,这里只有一个参数name

2.带参方法的调用
调用带参方法与调用无参方法的语法相同,但是在调用带参方法时必须传入实际参数的值
语法:
  1. 对象名.方法名(变量1,变量2,....,变量n);
复制代码
在定义方法和调用方法时,我们把参数分别称为形式参数和实际参数,简称形参和实参,形参是在定义方法的时候对参数的称呼,目的是用来定义方法需要传入的参数个数和类型.实参是在调用方法时传递给方法处理的实际的值
调用方法时,需要注意以下几点
  • 先实例化对象,再调用方法
  • 实参的类型,数量,顺序都要与形参一一对应

如下所示,示例2调用了addName()方法,添加了五名学生
示例2:
  1. public class TestAdd
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             StudentBiz st = new StudentBiz();
  6.             for(int i = 0;i<5;i++)
  7.             {
  8.                 string newName = Console.ReadLine();
  9.                 st.addName(newName);//实参
  10.             }
  11.             st.showName();
  12.         }
  13.     }
复制代码

3.带两个参数的方法
问题:
修改学生姓名,输入新旧姓名,进行修改并显示是否修改成功
分析:
在数组中查询到该学生,进行修改姓名.根据分析可以设计一个方法,通过传递两个参数(需要修改的姓名,新姓名)来实现,如示例3所示
示例3
  1. public class StudentBiz
  2.     {
  3.         string[] name = new string[30];//学生姓名数组
  4.         public void addName(string name)//有参方法
  5.         {
  6.             //增加学生姓名
  7.         }
  8.         public void showName()//无参方法
  9.         {
  10.             //显示全部学生姓名
  11.         }
  12.         public bool editName(string oldname,string newName)
  13.         {
  14.             bool find = false;
  15.             //循环数组,找到姓名为oldName的元素,修改为newName
  16.             for(int i = 0;i<name.Length;i++)
  17.             {
  18.                 if(name[i].Equals(oldname))
  19.                 {
  20.                     name[i] = newName;
  21.                     find = true;
  22.                     break;
  23.                 }
  24.             }
  25.             return find;
  26.         }
  27.     }
复制代码
  1. public class TestAdd
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             //.....
  6.             Console.WriteLine("请输入要修改的学生姓名");
  7.             string oldName = Console.ReadLine();
  8.             Console.WriteLine("请输入新的学生姓名");
  9.             string newName = Console.ReadLine();
  10.             Console.WriteLine("*****修改结果*****");
  11.             if(string.editName(oldName,newName))//调用带两个参数的方法
  12.             {
  13.                 Console.WriteLine("找到并修改成功");
  14.             }
  15.             else
  16.             {
  17.                 Console.WriteLine("没找到该学生");
  18.             }
  19.             string.showName();
  20.         }
  21.     }
复制代码
示例3中的StudentBiz类定义了带两个参数并且带返回值的方法 bool editName(string oldname,string newName)
两个参数分别传递需要修改的学生姓名,新姓名.return语句用来返回是否查找到该学生并修改成功


4.带多个参数的方法问题:
指定查找区间,查找学生姓名并显示是否修改成功
分析:
在数组的一定区间中查询学生姓名,设计方法,通过传递三个参数(开始位置,结束位置,查找的姓名)来实现.如示例4所示
示例4:
  1. <blockquote>public bool searchName(int start,int end,string name)
复制代码
  1. public class TestAdd
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             //.....
  6.             Console.WriteLine("请输入开始查找的位置");
  7.             int s =int.Parse(Console.ReadLine());
  8.             Console.WriteLine("请输入结束查找的位置");
  9.             int e = int.Parse(Console.ReadLine());
  10.             Console.WriteLine("请输入查找的姓名");
  11.             string name = Console.ReadLine();
  12.             Console.WriteLine("*****查找结果*****");
  13.             if(string.searchName(s,e,name))//调用带两个参数的方法
  14.             {
  15.                 Console.WriteLine("找到并修改成功");
  16.             }
  17.             else
  18.             {
  19.                 Console.WriteLine("没找到该学生");
  20.             }
  21.             string.showName();
  22.         }
  23.     }
复制代码


通过前面几个示例的学习对比,带参方法的参数个数不论多少,在使用时只要注意实参和形参一一对应,传递的实际参数的数据类型与形参相同,顺序一致,就掌握了带参方法的使用

这节课就讲到这里,谢谢大家




王尼玛C#初级开发原创教程目录:
1.C#初级开发原创教程第一课  Visual Studio 2013的安装
2.C#初级开发原创教程第二课 控制台的输出
3.C#初级开发原创教程第三课 数据类型转换
4.C#初级开发原创教程第四课 深入控制台应用程序
5.C#初级开发原创教程第五课 bool类型,关系运算符与if选择结构
6.C#初级开发原创教程第六课 复杂选择结构
7.C#初级开发原创教程第七课  循环结构(一)
8.C#初级开发原创教程第八课 循环结构(二)
9.C#初级开发原创教程第九课 数组
10.C#初级开发原创教程第十课 面向对象之类和对象
11.C#初级开发原创教程十一课 类的无参方法
12.C#初级开发原创教程十二课 带参数的方法(一)
13.C#初级开发原创教程第十三课 字符串的操作






评分

参与人数 12HB +30 THX +8 收起 理由
29590 + 1
消逝的过去 + 1
VipDongle + 1
zxjzzh + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
agan8888 + 1
ldljlzw + 1
EMT + 1 + 1
ding520 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
playboy + 1
创意合成 + 1 评分=感恩!简单却充满爱!感谢您的作品!
Top丶邪少 + 15 + 1 我很赞同!
zx2cwf + 10 + 1 我很赞同!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
zx2cwf 发表于 2014-10-20 06:53 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Top丶邪少 发表于 2014-10-21 14:17 | 显示全部楼层

顶菊花,楼主大神抱大腿
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
飞烟空梦 发表于 2021-4-7 11:22 | 显示全部楼层

感谢大大,大大的教程浅显易懂,就是这里有点疑惑。”string.showName();,string.editName()“没有定义string,定义的是st,所以一直报错,然后那个bool里的if比较,总干有点奇怪,等于的话就一直显示该生未找到,不等于就一直显示修改成功,有点不太懂里面的方法。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
af521 发表于 2022-11-21 15:29 | 显示全部楼层

感谢楼主分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表