方法就是做一件事
修饰符 返回值类型 方法名(参数列表)
{
方法的具体实现
}
修饰符可以理解为方法的特性
做一件事会有结果 所以有返回值 代码的结果都存在电脑里 所有要标定类型
做什么事要说清楚 所有通过方法名来描述和使用 遵循标识符的命名规则(每个单词的首字母大写)
做一件事需要条件 需要的内容填在参数列表里面
具体做什么在{}内进行编写
// 定义一个整数的加法 加法有结果 为整数类型
// 加法需要加数和被加数 在参数列表内填写 需要有对应的类型 通过,隔开
public int Add(int a, int b)
{
return a + b; // 结果通过关键字return返回到调用的位置
}
// 通过方法名进行调用 需要传入参数列表内对应类型的参数 返回结果出现在调用的位置
Console.WriteLine(Add(5,6));
参数
在完成一件事的过程中 有些需要的参数会被更改 有些不会被更改 前者为值参数 后者为引用参数
值参数
值参数通过的是值传递 等同于将传入的值复制一份给方法使用 在方法内发生变化不会影响到原数据
public void A(int a) // 定义一个值参数的A方法
{
a += 3; // 对参数a加3
Console.WriteLine(a);; // 输出a
}
int n = 5; // 定义一个变量n 值为5
A(n); // 将n作为参数传入A方法
Console.WriteLine(n); // 输出n的值
引用参数
传递方式为引用传递 即将当前数据的访问方式传给方法 数据在方法内发生变化后 原数据也会更改
public void A(ref int a) // 定义一个引用传递的方法A 需要使用ref关键字
{
a += 3; // 对参数a加三
Console.WriteLine(a); // 输出a的值
}
int n = 5; // 定义变量n 值为5
A(ref n); // 调用方法A 对于引用参数 使用时也需要ref标记
Console.WriteLine(n); // 输出n的值
输出参数
在做事情的过程中 产生的新的数据可能在其他地方需要使用 但不是我们这件事情的最终结果(返回值)
我们通过输出参数的形式传递出来 从存储上与引用参数一样 只有一个数据
public int Add (out int a, out int b) // 定义两个输出参数的Add方法
{
Console.WriteLine("请输入加数:");
a = Convert.ToInt16(Console.ReadLine()); // 对输出参数a赋值
Console.WriteLine("请输入被加数:");
b = Convert.ToInt16(Console.ReadLine()); // 对输出参数b赋值
return a + b;
}
int n,m,sum; // 定义变量
sum = Add(out n, out m); // 调用Add方法 输出参数需用out标记
Console.WriteLine(n + " + " + m + " = " + sum); // 输出对应变量
参数数组
事情需要有多个同一类型但个数不确定的数据完成时 通过参数数组的定义可随意输入若干个这个类型的参数
public int Add(params int[] x) // 定义参数数组的方法Add
{
int sum = 0; // 定义变量sum
for(int i = 0; i < x.Length; i++) // 循环参数数组
{
sum += x[i]; // 累加参数数组
}
return sum; // 返回sum变量
}
Console.WriteLine(Add(1,2,3,4)); // 输入1-4作为参数 调用Add方法
Console.WriteLine(Add(1,2,3,4,5,6,7,8,9)); // 输入1-9作为参数 调用Add方法
可以将参数数组理解为 一个参数是由数组构成的 但这个数组的长度可随意变化
方法的重载
同样的处理方式和步骤 但处理的对象不一样 对于这种功能相同 但对象不同的方法使用方法的重载
public int Add(params int[] x) // 定义参数数组的方法Add
{
int sum = 0; // 定义变量sum
for(int i = 0; i < x.Length; i++) // 循环参数数组
{
sum += x[i]; // 累加参数数组
}
return sum; // 返回sum变量
}
public double Add(params double[] x) // 定义参数数组的方法Add
{
double sum = 0; // 定义变量sum
for(int i = 0; i < x.Length; i++) // 循环参数数组
{
sum += x[i]; // 累加参数数组
}
return sum; // 返回sum变量
}
Console.WriteLine(Add(1, 2, 3, 4));
Console.WriteLine(Add(1.1, 1.2, 1.3, 1.4));
对于方法的重载的判断是 方法的参数列表不同 这个不同指的是个数和类型的改变