- 数组参数
string.Format()是一个我们常用的字符串拼接方法
string str = string.Format("Hello,{0},my name is {1},and i'm {2} years old","Xiaoming","Wednesday","9");
在上面的字符串中,我们可以加入任意个参数,这就是我们最常见的数组参数,在上面的例子中,“Xiaoming”,“Wednesday”,"9"编译器会自动为我们保存成一组数组,这就是我们在用这个方法时,为什么可以加入任意个参数的原因
自定义数据参数:
//在参数的数据类型前,加上params关键字,这个参数就成为了数组参数
public int Sum(params int[] intArray)
{
int sum = 0;
foreach(var item in intArray)
{
sum += item;
}
return sum;
}
static void Main(string[] args)
{
//调用方法时,不需要再New一个数组,可以传递任意个int类型的参数
int x = sum(1,2,3,4,5,6,7,8);
}
需要注意的是,数组参数必须是方法参数的最后一个
- 扩展方法(this 参数):为目标数据类型"追加"方法
//定义一个Double类型的参数
double x = 3,14159;
//给参数从小数点第四位开始四舍五入,需要用到Math类的Round方法
double y = Math.Round(x,4);
那么我们是否可以让Double类型的参数具有自己的Round方法呢
当然可以,那就是我们的扩展方法:
//创建一个静态类
static class DoubleExtension
{
//扩展方法必须由一个静态类来统一收纳对SomeType类型的扩展方法
//一般类名为SomeTypeExtension
//扩展方法必须是共有的、静态的
//扩展方法的this参数,必须是形参列表中的第一个,由this修饰
public static double Round(this double input, int digits)
{
return Math.Round(input,digits);
}
}
class Progrme
{
double x = 3,14159;
//创建好扩展方法后,四舍五入时,我们就可以直接使用了
double y = x.Round(x,4);
}