参数基础:
参数其实实现的是不同方法间的数据传递,也就是信息交换(所以参数一般用于方法)
实参:调用方法的参数(mystring);
string mystring = “this is your argument”
ShowString(mystring );
形参:被调用方法的参数(astr)
private static void ShowString(string astr)
{
Console.writeline(astr)
}
传递的基础:
- 泛型类型参数
静态泛型:MyGeneric< int >
动态泛型:MyGeneric< T >(其实就是一个占位符)
*可变数目参数
params(用的太少,不细讲)
深入讨论,传递的艺术:
- 值类型参数的按值传递
public static void Main()
{
int a = 10;
Add(a);
Console.WriteLine(a);
}
private static void Add(int i)
{
i = i+10
Console.WriteLine(i)
}
- 引用类型参数的按值传递(尚不明确)
- 按引用传递之ref和out
1)重中之重方法定义和方法调用必须同时显示的使用ref或者out
2)ref 和out关键字将告诉编译器:方法传递的是参数地址,而不是参数本身
ref和out的区别:ref要求传递之前的参数必须首先显式初始化(使用ref的参数必须是一个实际的对象),而out不需要(可以接受null的对象,然后在调用方法内部完成对象的实体化)。