在以往的项目中,只是编写代码,写完了也就了事,没有花太多时间看书,现在看了下书籍,发现自己有太多不足。参数有值参数,引用参数,输出参数和参数数组等。

1:值参数是用的最多的一种。使用值参数,也就是通过复制值参数的值到形参的方式把数据传到方法上。这个地方就像值类型相似,都是在在内存的栈上存储数据,通过复制一分来传值,相比引用类型,值类型由于是在内存中Copy一份,所以比较占内存。

2:引用参数:使用引用参数的时候,需要在方法的申明和调用的时候使用ref修饰符,同时实参必须是变量,在使用实参之前也必须被赋值。对于引用参数,形参的参数名看起来就好像是实参变亮的别名,也就是说,它们指向相同的位置,因此在方法执行过程后,实参变量的值改变了。

3:输出参数:输出参数同引用参数和相似,输出参数的修饰符是out,实参必须是变亮,在方法内部,输出参数在被读取之前必须被赋值。

4:参数数组:参数数组可以允许0个或多个市场对应一个特殊的形参。一个参数列表只能有一个参数数组。

C#4.0中引入了新的特性:命名参数和可选参数

命名参数:

例如:

class MyClass
{
public int Calc(int a,int b,int c)
{return (a+b)*c;}
static void Main()
{
MyClass mc=new MyClass();
int result=mc.Calc(c:2,a:4,b:3);
Console.WriteLinr("{0}",result);
}
}

 

可选参数:在调用方法的时候可以包含此参数,也可以省略这个参数。

例:

classMyClass
{
public int Calc(int a,int b=3)
{return a+b;}
 
static void Main()
{
MyClass mc=new MyClass();
int r1=mc.Clac(5,6);
int r2=mc.Clac(5);
}

其中r1=11,r2=8

对于C#4.0中参数的新特性,自己以前没有接触过,所以这里进行一次归纳总结。

}

可选参数,只有值类型的参数可以作为可选参数,所有必填参数必须在可选参数之前,同时如果有params参数,则必须在可选参数之后。

例:(int x,string y,... int a1=12,string aa=ss,...params int []  intValue)