C#语法糖 可变参数 params
适用场景
同一个词语可以添加多个近义词
传递一个一维数组类型的参数
当集合参数个数不确定的时候是使用可变参数的最佳场景
举例
private void Start()
{
GetHouse("Kitchen", "Bedroom", "Livingroom", "Bathroom");
}
private void GetHouse(params string[] rooms)
{
Debug.Log("I want a House with " + String.Join(", ", rooms));
}
输出:
I want a House with Kitchen, Bedroom, Livingroom, Bathroom
其它
string.Format
也是基于params实现的,毕竟Format具体的参数依赖于前面声明的字符串的占位符个数。在翻看相关代码的时候还发现了一个ParamsArray
这个类,用来包装params可变参数,简单的来说就是便于快速操作params
注意:
params修饰在参数的前面且参数类型得是一维数组类型
params修饰的参数默认是可以不传递的
params参数不能用ref或out修饰且不能手动给默认值