C# 常用关键字说明
一:params参数
1、params 是C#的关键字, params主要是在声明方法时参数类型或者个数不确定时使用。关于params 参数数组,在使用时,需注意以下几点:
1) 参数数组必须是一维数组;
2)不允许将params修饰符与ref和out修饰符组合起来使用;
3)与参数数组对应的实参可以是同一类型的数组名,也可以是任意多个与该数组的元素属于同一类型的变量;
4)若实参是数组则按引用传递,若实参是变量或表达式则按值传递;
5)用法:可变的方法参数,也称数组型参数,适合于方法的参数个数不知的情况,用于传递大量的数组集合参数;当使用数组参数时,可通过使用params关键字在形参表中指定多种方法参数,并在方法的参数表中指定一个数组;
6)形式为:方法修饰符 返回类型 方法名(params 类型[] 变量名)。
2、使用举例一
public async Task<IActionResult> Index()
{
UseParams("abc", "bcd", "cde"); //既可以用任意多个int
var myArray = new string[] {"zxc", "xcv", "cvb", "bnm"};
UseParams(myArray); //也可以是int一维数组
UseParams2(1, 'a', new object());//类型不定
return View();
}
public static void UseParams(params string[] list)
{
for (int i = 0; i < list.Length; i++)
{
Console.WriteLine(list[i]);
}
Console.WriteLine();
}
public static void UseParams2(params object[] list)
{
for (int i = 0; i < list.Length; i++)
{
Console.WriteLine(list[i]);
}
Console.WriteLine();
}
3、使用举例二
static void Main(string[] args)
{
int sum = GetSum(5,5,4,6,10) ;
Console.Write(sum);
}
public static int GetSum(params int[] Input)
{
int sum = 0;
for (int i = 0; i < Input.Length; i++)
{
sum += Input[i];
}
return sum;
}
二:out参数
1:如果你在一个方法中,返回多个相同类型的值得时候,可以考虑返回一个数组。但是,如果返回多个不同类型的值得时候,返回数组就不行了,那么这个时候,我们可以考虑使用out参数。
2:使用举例
static void Main(string[] args)
{
//GetMaxMinSumAvg_2的使用
int[] numbers = {99,1,2,3,5,4,8,7,9};
int max = 0;
int min = 0;
int sum = 0;
int avg = 0;
GetMaxMinSumAvg_2(numbers,out max,out min ,out sum,out avg);
}
public static void GetMaxMinSumAvg_2(int[] nums, out int Max, out int Min, out int Sum, out int Avg)
{
Max = nums[0];
Min = nums[0];
Sum = 0;
for (int i = 0; i < nums.Length; i++)
{
if (nums[i] > Max)
{
Max = nums[i];
}
if (nums[i] < Min)
{
Min = nums[i];
}
Sum = Sum + nums[i];
}
Avg = Sum / nums.Length;
}
三:ref参数
1:能够将一个变量带入一个方法中进行改变,改变完成后,再讲改变后的值带出方法。ref参数要求在方法外必须为其赋值,而方法内可以不赋值。
2:使用举例
static void Main(string[] args)
{
double salary = 10000;
Jiangjin(ref salary);
Console.WriteLine(salary);
FaKuan(ref salary);
Console.WriteLine(salary);
}
public static void Jiangjin(ref double s)
{
s = s + 2000;
}
public static void FaKuan(ref double s)
{
s = s - 1000;
}
3:运行结果
12000 11000 |