|
本帖最后由 王尼玛 于 2014-10-24 01:17 编辑
大家好,我是王尼玛。今天起我给大家讲解C#开发教程,本次是第十二课。大家在课后有什么疑问可以跟帖留言,我会尽我所能来解答。毕竟众口难调,大家有什么建议也可以跟帖告诉我。
此教程为本人原创,转载请注明"吾爱汇编论坛王尼玛原创"
好了,废话不多说,开始今天的学习.
有朋友说不太明白我写的教程,其实编程这东西很简单,一个字,练!你光看我写的多半是一头雾水,因为你没实际跟着我讲的代码去操作,你要跟着我的代码敲,多敲代码,多练习我给的例子,再配合我例子后面的讲解,自然就明白我讲的是什么了.还不明白?跟帖问吧
1.如何定义带参方法
通过前面的学习,我们知道,类的方法是一个功能模块,其作用是"做一件事情",实现某一个独立的功能,可供多个地方使用.在现实生活中,你使用过榨汁机吗?榨汁机提供了一个很好的"榨汁"功能.如果你放进去的是苹果,榨出来的就是苹果汁,如果放进去的是草莓,榨出来的就是草莓汁,如果你同时放入两种水果,榨出来的就是苹果草莓汁.如果什么都不放,就没办法榨汁了!因此,在使用榨汁机时,你必须提供一个被榨的水果.再比如说,使用ATM机取钱时,我们肯定是先要输入取款金额,然后ATM机才会"吐出"纸币.方法中某种功能的实现依赖于我们给它的作用体,这时候在定义方法时就需要在括号中加入参数列表
结合前面学习过的无参方法,现在给出定义类的方法的一般格式
语法:
- <访问修饰符> 返回类型 <方法名>(<参数列表>){
- //方法的主体
- }
复制代码 其中:
- <访问修饰符>指该方法允许被访问调用的权限范围,只能是public,protected或private.其中public访问修饰符表示该方法可以被任何其他代码调用,另外i啊两种修饰符将在后续课程中陆续学习
- 返回类型指方法返回值的类型.如果方法不返回任何值,它应该声明为void类型,C#对待 返回值要求很严格,方法返回值必须与所说明的类型相匹配.使用return关键字返回值.
- <方法名>是定义的方法的名字,它必须使用合法的标识符
- <参数列表>是传送给方法的参数列表.列表中各参数间以逗号分割,每个参数由一个类型和一个标识符名组成.参数列表的格式为数据类型 参数1,数据类型 参数2,....数据类型 参数n,其中n>=0
示例1:
- public class StudentBiz
- {
- string[] name = new string[30];//学生姓名数组
- public void addName(string name)//有参方法
- {
- //增加学生姓名
- }
- public void showName()//无参方法
- {
- //显示全部学生姓名
- }
- }
复制代码 示例定义了一个学生信息管理类StudentBiz,包含学生姓名数组的属性,增加学生姓名的方法,其中方法addName(string name)实现学生姓名的增加,这里只有一个参数name
2.带参方法的调用
调用带参方法与调用无参方法的语法相同,但是在调用带参方法时必须传入实际参数的值
语法:
- 对象名.方法名(变量1,变量2,....,变量n);
复制代码 在定义方法和调用方法时,我们把参数分别称为形式参数和实际参数,简称形参和实参,形参是在定义方法的时候对参数的称呼,目的是用来定义方法需要传入的参数个数和类型.实参是在调用方法时传递给方法处理的实际的值
调用方法时,需要注意以下几点
- 先实例化对象,再调用方法
- 实参的类型,数量,顺序都要与形参一一对应
如下所示,示例2调用了addName()方法,添加了五名学生
示例2:- public class TestAdd
- {
- static void Main(string[] args)
- {
- StudentBiz st = new StudentBiz();
- for(int i = 0;i<5;i++)
- {
- string newName = Console.ReadLine();
- st.addName(newName);//实参
- }
- st.showName();
- }
- }
复制代码
3.带两个参数的方法
问题:
修改学生姓名,输入新旧姓名,进行修改并显示是否修改成功
分析:
在数组中查询到该学生,进行修改姓名.根据分析可以设计一个方法,通过传递两个参数(需要修改的姓名,新姓名)来实现,如示例3所示
示例3
- public class StudentBiz
- {
- string[] name = new string[30];//学生姓名数组
- public void addName(string name)//有参方法
- {
- //增加学生姓名
- }
- public void showName()//无参方法
- {
- //显示全部学生姓名
- }
- public bool editName(string oldname,string newName)
- {
- bool find = false;
- //循环数组,找到姓名为oldName的元素,修改为newName
- for(int i = 0;i<name.Length;i++)
- {
- if(name[i].Equals(oldname))
- {
- name[i] = newName;
- find = true;
- break;
- }
- }
- return find;
- }
- }
复制代码- public class TestAdd
- {
- static void Main(string[] args)
- {
- //.....
- Console.WriteLine("请输入要修改的学生姓名");
- string oldName = Console.ReadLine();
- Console.WriteLine("请输入新的学生姓名");
- string newName = Console.ReadLine();
- Console.WriteLine("*****修改结果*****");
- if(string.editName(oldName,newName))//调用带两个参数的方法
- {
- Console.WriteLine("找到并修改成功");
- }
- else
- {
- Console.WriteLine("没找到该学生");
- }
- string.showName();
- }
- }
复制代码 示例3中的StudentBiz类定义了带两个参数并且带返回值的方法 bool editName(string oldname,string newName)
两个参数分别传递需要修改的学生姓名,新姓名.return语句用来返回是否查找到该学生并修改成功
4.带多个参数的方法问题:
指定查找区间,查找学生姓名并显示是否修改成功
分析:
在数组的一定区间中查询学生姓名,设计方法,通过传递三个参数(开始位置,结束位置,查找的姓名)来实现.如示例4所示
示例4:
- <blockquote>public bool searchName(int start,int end,string name)
复制代码- public class TestAdd
- {
- static void Main(string[] args)
- {
- //.....
- Console.WriteLine("请输入开始查找的位置");
- int s =int.Parse(Console.ReadLine());
- Console.WriteLine("请输入结束查找的位置");
- int e = int.Parse(Console.ReadLine());
- Console.WriteLine("请输入查找的姓名");
- string name = Console.ReadLine();
- Console.WriteLine("*****查找结果*****");
- if(string.searchName(s,e,name))//调用带两个参数的方法
- {
- Console.WriteLine("找到并修改成功");
- }
- else
- {
- Console.WriteLine("没找到该学生");
- }
- string.showName();
- }
- }
复制代码
通过前面几个示例的学习对比,带参方法的参数个数不论多少,在使用时只要注意实参和形参一一对应,传递的实际参数的数据类型与形参相同,顺序一致,就掌握了带参方法的使用
这节课就讲到这里,谢谢大家
王尼玛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#初级开发原创教程第十三课 字符串的操作
|
评分
-
参与人数 12 | HB +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 |
我很赞同! |
查看全部评分
|