方法
一、 为什么使用方法
方法就是将一堆代码进行重用的一种机制。方法就是一段代码,这段代码可能有输入的值(参数),可能会返回值。
一个方法就像一个专门做这件事的人,我们调用它来做一些事情,它可能需要我们提供一些数据给它,它执行完成后可能会有一些执行结果给我们。要求的数据就叫参数,返回的执行结果就是返回值。
string s=Console.ReadLine()就是一个有返回结果的方法;Console.WriteLine("hello")就是一个有执行参数的方法,只有告诉WriteLine被打印的数据它才知道如何打印;int i=Convert.ToInt32("22")则是一个既有参数又有返回值的方法。
有了方法写代码就像拼积木,C#中的各种各样的技术其实就是通过for、if等这些基础的语法将不同的方法按照一定的逻辑组织起来。
二、 无参方法
(一) 如何定义方法
1. 组成
方法的定义必须包括以下3个部分
a) 方法名称
b) 方法的返回值
c) 方法的主体
[图片上传失败...(image-7e0854-1544670350910)]
2. 语法
public 返回值类型 方法名() {
//这里编写方法的主体
}
步骤一:定义方法名以及返回值类型
步骤二:编写方法体
注:方法的修饰符包括public、protected、internal、private、virtual、sealed等,修改符可以是一个也可以是多个,这些修饰符,我们暂时不用深究。
3. 方法的返回值
(1) . 如果方法具有返回值,方法中必须使用关键字return返回该值,返回值类型为该返回值的类型
return 表达式;
作用: 跳出方法、返回结果
(2) . 如果方法没有返回值,返回值类型为void
方法体中可以有return,也可以没有return语句,但不允许给return语句指定表达式。
在返回类型为void的方法中使用return的语句的作用是立即退出方法的执行
(二) 方法的调用
方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果.
在C#语言中,方法的调用主要采用以下二种方式:
(1) . 表达式=方法名()
(2) . 方法名()
如果没有返回值,主要采用第二种,有返回值,则采用第一种
(三) 练习
(一) 定义方法的常见错误
1. 方法的返回值类型为void,方法中不能有return 返回值!
public void showInfo() {
return "我是一名学生";
}
2. 方法不能返回多个值!
public double getInfo() {
double weight = 95.5;
double height = 1.69;
return weight, height;
}
三、 带参数的方法
(一) 为什么要用带参数的方法
榨汁机会根据放入的不同水果,榨出不同的果汁
[图片上传失败...(image-adfe8b-1544670350909)]
(二) 定义带参数的方法
<访问修饰符> 返回类型 <方法名>(<形式参数列表>) {
//方法的主体
}
(三) 调用带参数的方法
方法名(参数1, 参数2,……,参数n)
(四) 问题解决
1. 定义方法体
static string zhazhi(string fruit)
{
string juice = fruit + "汁";
return juice;
}
2. 调用
static void Main(string[] args)
{
Console.WriteLine( zhazhi("苹果"));
}
(五) 练习
1. 练习1:
问题描述
在保存了多个学生姓名的数组中,指定查找区间,查找某个学生姓名并显示是否查找成功
分析
设计方法,通过传递三个参数(开始位置、结束位置、查找的姓名)来实现
代码
2. 练习二:常见错误
调用方法时不能指定实参类型!
//方法定义
public void addName(String name){
//方法体
}
//方法调用
addName(String "张三");
形参和实参数据类型不一致!
//方法定义
public boolean searchName(int start ,int end ,String name){
//方法体
}
//方法调用
String s="开始";
int e=3;
String name="张三";
searchName(s ,e ,name);
形参和实参数量不一致!
//方法定义
public boolean searchName(int start,int end,String name){
//方法体
}
//方法调用
int s=1;
int e=3;
searchName(s,e);
3. 练习3:数组作为参数
问题描述
有5位学员参加了C#知识竞赛的决赛,输出决赛的平均成绩和最高成绩
[图片上传失败...(image-4c9caa-1544670350908)]
分析
将5位学员的决赛成绩保存在数组中
设计求平均成绩、最高成绩的方法,并把数组作为参数
代码
四、 作业
(一) 作业1:编程实现如下计算器效果:
[图片上传失败...(image-1c0901-1544670350908)]
网友评论