方法:是一种用于实现可以由对象或类执行的计算或操作的成员,是一个已命名的语句集。方法就是把一些相关的语句组织到一起,用来执行一个任务的语句块。比如每个C#程序至少带一个main函数
1.格式:修饰符 返回值类型 方法名称 (参数列表)
{
方法体
}
2.每个方法都有一个名称和一个主体
方法名称:是一个有意义的标识符,应当描述出方法的用途。
方法主体:包含了调用方法时实际执行的语句
修饰符:public ,private, static等等
返回值类型:void, int ,double等等
参数列表可为数组
3.用户可以为大多数方法提供一些数据来进行处理,并让其返回一些信息(通常是处理结果)
下面是方法的各个元素:
- Access Specifier:访问修饰符,这个决定了变量或方法对于另一个类的可见性。
- Return type:返回类型,一个方法可以返回一个值。返回类型是方法返回的值的数据类型。如果方法不返回任何值,则返回类型为 void。
- Method name:方法名称,是一个唯一的标识符,且是大小写敏感的。它不能与类中声明的其他标识符相同。
- Parameter list:参数列表,使用圆括号括起来,该参数是用来传递和接收方法的数据。参数列表是指方法的参数类型、顺序和数量。参数是可选的,也就是说,一个方法可能不包含参数。
- Method body:方法主体,包含了完成任务所需的指令集。
For example
//编写一个方法用于计算给定整型数组元素的和 static int Add(params int[] nums) { int sum = 0; foreach (int outnum in nums) sum += outnum; return sum; } static void Main(string[] args) { int[] myintArry = { 1, 2, 3, 4, 5 }; Console.WriteLine(Add(myintArry)); Console.ReadKey();
当调用带有参数的方法时,您需要向方法传递参数。在 C# 中,有三种向方法传递参数的方式:值类型,引用类型,输出类型。
值类型:传值给方法,方法中的变量修改不影响参数列表,复制参数的实际值给函数的形式参数,实参和形参使用的是两个不同内存中的值。在这种情况下,当形参的值发生改变时,不会影响实参的值,从而保证了实参数据的安全。
For example
//编写一个方法用于求平方(没有返回值) static void Square(int num) { num *= num; Console.WriteLine("num平方="+num); } static void Main(string[] args) { int num = 10; Console.WriteLine(num); Square(num); Console.WriteLine(num); Console.ReadKey();
引用类型:这种方式复制参数的内存位置的引用给形式参数。这意味着,当形参的值发生改变时,同时也改变实参的值。
ref关键词指定,使用:1.调用函数变量必须非常量;2.调用变量必须初始化。
For example
//编写一个方法用于求平方(没有返回值) static void Square(ref int num) { num *= num; Console.WriteLine("num平方="+num); } static void Main(string[] args) { int num = 10; Console.WriteLine(num); Square( ref num); Console.WriteLine(num); Console.ReadKey();
输出参数:可以返回多个值
1.执行方式与ref完全一样,关键字为out
For example
//编写一个方法用于计算输出数组中最大的值 static int MaxNum(int[] nums, out int MaxNumIndex) { int maxNum = nums[0]; MaxNumIndex = 0; for (int i = 0; i < nums.Length; i++) { if (maxNum < nums[i]) maxNum = nums[i]; MaxNumIndex = i; } return maxNum; } static void Main(string[] args) { //int[] a= { 1, 2, 3, 4, 5 ,6}; //Console.WriteLine(Add(a)); //Console.ReadKey(); int[] a = {1,2,3,5,6,8,9,11}; int MaxNumIndex; Console.WriteLine("最大值max={0},最大值索引是{1}",MaxNum(a,out MaxNumIndex),MaxNumIndex); Console.ReadKey();