C#中参数数组、引用参数和输出参数示例详解
在C#中,函数的参数既可以是值类型,也可以是引用类型。同时C#还提供了参数数组、引用参数和输出参数以满足不同的需求。
参数数组
在函数定义时,可以定义参数数组,这样在调用该函数时可以传递不确定数量的参数,下面是一个示例:
public static int Sum(params int[] numbers)
{
int sum = 0;
foreach (int num in numbers)
{
sum += num;
}
return sum;
}
// 调用Sum函数
int result = Sum(1, 2, 3, 4, 5);
引用参数
引用参数是通过将参数前添加ref
关键字定义的,在C#中,引用参数类似于指针(不过比指针更安全)。使用引用参数的主要目的是可以改变原来变量的值,下面是一个示例:
public static void Swap(ref int a, ref int b)
{
int temp = a;
a = b;
b = temp;
}
// 调用Swap函数
int x = 1;
int y = 2;
Swap(ref x, ref y);
输出参数
输出参数同样是通过在参数前添加out
关键字定义的。使用输出参数的目的主要是将函数的多个返回值合并为一个,下面是一个示例:
public static bool TryParse(string s, out int result)
{
bool success = int.TryParse(s, out result);
return success;
}
// 调用TryParse函数
int result;
bool success = TryParse("123", out result);
在上述调用中,result
变量将会通过函数返回值返回,而success
变量则表示函数是否执行成功。
示例1
假设有一个类Person
,其中包含id
和name
两个属性,现在有一个数组persons
,数组中的每个元素都是一个Person
对象。现在要遍历该数组,找到id
为指定值的Person
对象并修改该对象的name
属性值为指定值,请使用C#语言实现。
代码实现:
public static void UpdateName(Person[] persons, int id, string name)
{
foreach (Person person in persons)
{
if (person.Id == id)
{
person.Name = name;
return;
}
}
}
在上述实现中,persons
参数为Person
类型的数组,id
和name
参数为值类型。person
为引用类型,可以直接修改其属性值。
示例2
假设有一个类TimeSpan
,其中表示一个时间段(以时、分、秒为单位),现在需要编写一个函数,计算多个时间段的总时长。请使用C#语言实现。
代码实现:
public static TimeSpan TotalTime(params TimeSpan[] timeSpans)
{
TimeSpan result = TimeSpan.Zero;
foreach (TimeSpan timeSpan in timeSpans)
{
result += timeSpan;
}
return result;
}
在上述实现中,timeSpans
参数为TimeSpan
类型的数组,result
为引用类型,可以直接修改其属性值。
以上就是C#中参数数组、引用参数和输出参数的详细攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中参数数组、引用参数和输出参数示例详解 - Python技术站