方法
各种语言都有方法的概念,有的语言称其为函数或者过程。方法就是对一系列语句的命名,表示一个功能或者行为。如:Start、Update、Movement····· 使用方法可以提高代码的可重用性和可维护性(代码层次结构更清晰)。
语法:
方法定义:
[访问修饰符] [可选修饰符] 返回类型 方法名称(参数列表) // 方法名称首字母需大写
{
// 方法体
return 结果;
}
调用方法:
方法名称(参数);
方法:表示功能。
返回值:功能的结果。(方法定义者 告诉 方法调用者的 结果)
如果方法有返回值,方法体中必须有 return 语句,且返回的数据与返回值类型必须兼容。void 代表无返回值类型,方法体中 return 关键字可有可无。return 后面的语句将不再执行。调用方法时,如果需要结果,声明相应类型的变量接收返回值数据。
类型:数据类型 int、double、float、string
参数列表
参数:方法定义者需要调用者传递的信息(调用者向定义者提供的信息)。定义方法时叫形式参数,简称形参;调用方法时叫实际参数,简称实参。
实参与形参要一一对应(类型、顺序、数量)
学会调用别人提供的方法:
1、看名字猜,看描述
2、看参数(类型、名称、描述)
3、看返回值
4、测试
常见方法:
string str = "你好,世界!";
// 返回指定的索引位置插入指定字符串
str = str.Insert(2, "啊");
// 查找指定字符在字符串中的索引
int index = str.IndexOf('世');
// 给定长度删除所有字符后获取新字符串。如果未指定长度,则删除 指定索范围之后的所有字符。
str = str.Remove(2); // 你好
// 将原有字符串的某些片段替换成指定的新字符串片段
str = str.Replace('你', '它'); // 它好,世界!
// 确定此字符串实例的开头是否与指定的字符串匹配
bool re = str.StartsWith("你好"); // true
// 返回指定的子字符串是否出现在此字符串中
re = str.Contains("界"); // truestring str = "你好,世界!";
str = str.Insert(2, "啊");
方法重载
定义:方法名称相同,参数列表不同。
作用:在不同条件下,解决同一类问题,让调用者仅仅记忆一个方法。
递归
定义:方法内部调用自身的过程。
核心思想:将问题转移给范围缩小的子问题。
适用性:在解决某个问题的过程中,又遇到相同的问题。
优势:将特别复杂的问题简单化。
缺点:性能较差。
注意:堆栈是否溢出。
运行效率高,不利于调试。
C#代码:
// 计算阶乘(递归)
private static int GetFactorial(int num)
{
/*
3 * (3-1)
2 * (2-1)
1 return 1 return回上一步而不是调用者
*/
if (num == 1) return 1;
return num * GetFactorial(num - 1);
}
// 编写一个函数,就算当参数为8时的结果为多少?(使用递归实现)
// 1 - 2 + 3 - 4 + 5 - 6····
private static int GetValue(int num)
{
if (num == 1) return 1;
if (num % 2 == 0)
return GetValue(num - 1) - num;
else
return GetValue(num - 1) + num;
}
static void Main2(string[] args)
{
//int result = GetFactorial(3);
int result1 = GetValue(8);
}