引用参数
值参数和引用参数的区别在于传参时是否会创建参数副本:值参数不会创建副本,而引用参数会创建副本。
换言之,值类型参数的参数与实体之间无直接关联,修改参数不会对实体产生影响;引用类型参数的参数与实体可视为同一参数,修改参数会将修改同步至实体。
注:当函数并不修改参数引用,而只是修改被引用的对象时,值参数引用类型与引用参数引用类型在使用上并无区别,只是机制不同
使用方式:形参与实参用 ref 修饰
int num = 100;
public void Calculate(ref int x, int y)
{
// 逻辑
}
Calculate(ref num, 50);
输出参数
输出参数与引用参数类似,其修饰符为 out (只是在函数中必需对输出参数执赋值操作,否则无法编译通过)
int num = 100;
public void Calculate(out int x, int y)
{
// 逻辑
x = 1;
}
Calculate(num, 10)
数组参数
设置数组参数后,函数可接收动态数量的参数(数组参数必需位于参数列表的末尾;数组参数允许不传参)
使用方式:形参使用 params 修饰
public void Calculate(int x, int y, params int[] z)
{
// 逻辑
}
Calculate(1, 10, 1, 2, 3); // 1 2 3会被整合进z数组
具名参数
通过具名参数传参,无需提前声明变量(具名参数依据参数名与形参匹配,而不是次序)
使用方式:参数 : 值(传参时)
public void Calculate(int x, int y)
{
// 逻辑
}
Calculate(x: 1, y: 10);
可选参数文章来源:https://www.toymoban.com/news/detail-834056.html
设置可选参数后,参数具有默认值,可选择不传参;若对参数传参,则覆盖默认值文章来源地址https://www.toymoban.com/news/detail-834056.html
public void Calculate(int x = 1, int y = 1)
{
// 逻辑
}
Calculate(10);
到了这里,关于C#_各式各样的参数(引用参数、输出参数、数组参数、具名参数、可选参数)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!