方法
在C#中,方法的定义包括任意方法修饰符(如方法的可访问性)、返回值的类型,然后依次是方法名、输入参数的列表。
方法的返回值必须与方法定义时的类型一致。
例如以下一个判断输入的参数是否是偶数的方法:
1 /// <summary> 2 /// 判断一个数是否是偶数 3 /// </summary> 4 /// <param name="number"></param> 5 /// <returns>true/false</returns> 6 public bool IsEvenNumbers(int number) 7 { 8 return number % 2 == 0; 9 }
例如不带有任何返回类型的静态方法 关键字void
public void IsEvenNumbers() { const int number = 10; var isEvenNumbers = number % 2 == 0; }
表达式体方法,简化代码写法的语法糖,适用于一些简单逻辑的方法,例如:
1 /// <summary> 2 /// 判断一个数是否是偶数 3 /// </summary> 4 /// <param name="number"></param> 5 /// <returns>true/false</returns> 6 public bool IsEvenNumbers(int number) => number % 2 == 0;
方法的重载:方法的名称相同,但参数个数和/或数据类型不同。
例如:
public int GetUserAge(string userId) => 18; public int GetUserAge(string userId, string name) => 18;
命名参数
调用方法时,一般不需要添加到调用中,但使用时的要与参数的顺序匹配。
也可以使用命名参数,指定每个调用的参数名,例如:
/// <summary> /// 根据用户id和用户名称获取用户的年龄 /// </summary> /// <param name="userId"></param> /// <param name="userName"></param> /// <returns></returns> public int GetUserAge(string userId, string userName) { return 18; } // 普通调用 var age = GetUserAge("1", "小红"); // 指定参数的调用 var age2 = GetUserAge(userName: "小红", userId: "1");
可选参数
方法的参数也是可选的,但必须为参数提供默认值,还必须是方法定义的最后一个参数,例如:
1 /// <summary> 2 /// 根据用户id和用户名称获取用户的年龄 3 /// 默认查询小红的年龄 4 /// </summary> 5 /// <param name="userId"></param> 6 /// <param name="userName">可选参数</param> 7 /// <returns></returns> 8 public int GetUserAge(string userId, string userName ="小红") 9 { 10 return 18; 11 } 12 var hongAge = GetUserAge("1"); 13 var mingAge = GetUserAge("2", "小明");
个数可变的参数
关键字params
例如,计算几个输入的整数的和
public int GetUserAge(params int[] numbers) { //return numbers.Sum(); var total = 0; foreach (var number in numbers) { total += number; } return total; } // 调用 // 计算1-5的和 var total1 = GetTotal(1, 2, 3, 4, 5); // 计算1-10的和 var total2 = GetTotal(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);