方法

在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);

 

posted @ 2020-04-12 18:22  VTing4You  阅读(134)  评论(0编辑  收藏  举报