{
Console.WriteLine(p[i]);
}
}
static void Main(string[] args)
{
//调用使用了参数数组的方法 参数的数量是可变的
Add();
Add(1,3,5);
Add(1,3,5,7);
}
值类型和引用类型
C#中的数据类型按照大的分类 分为值类型和引用类型。值类型包括基本数据类型、枚举和结构,引用类型包括数组、类(String)、接口等。
区别:
值类型相当于单独的一个箱子 直接操作箱子内的内容。
引用类型相当于管理存储箱子的管理员。
从以下几个方面来了解它们的具体区别:
1.声明时
值类型:新产生一个箱子 等待存储
引用类型:产生一个箱子管理员 等待一个箱子
2.被赋值
值类型:将新的内容直接放在箱子内
引用类型:和=右边的管理员一起管理同一个箱子
函数参数默认是值传递的,也就是“复制一份”。
Ref和out
out和ref传递的都是引用而不是值,out侧重于输出使用之前不需赋值而ref在使用之前需要赋值,另外这两个关键字可以变相实现使一个方法输出多个值。
1.形参和实参指向同一地址
2.始终保证形参和实参指向同一地址
ref和out不一样:
ref在实参传入时 保留其值 而out消除其值
方法编写的时候的选择:
若方法只有一个返回值 选择使用返回值类型
例:
public static int ReturnInt()
{
return 1;
}
如果返回值多于1个 选择使用out
public static void ReturnInt(out int a,out int b)
{
//a、b赋初值
// a、b参与运算
}
调用时: int c;int d; ReturnInt(out c,out d);
如果需要直接将结果返回到某一个变量上 使用ref
public static void ChangeString(ref String s)
{
s = "000"+s;
}
调用时: String ss = "1"; ChangeString(ref ss);