一.传值
值类型
传入方法中相当于是对传入的参数创建了一个值相等的副本
class Programme
{
static void Main(string[] args)
{
int y = 100;
Complex.Add(y);
Console.WriteLine(y);
}
}
class Complex
{
public static void Add(int x)
{
x = x + 1;
Console.WriteLine(x);
}
}
//输出的结果为 101 100说明y的值并没有被改变
引用类型
原理也是一样,先创建一个副本,但是副本所指向的是传值参数的对象地址,如果重新给对象赋值的话就会改变副本的引用对象
class Programme
{
static void Main(string[] args)
{
Student stu = new Student() { Name = "Tom" };
Set_Name(stu);
Console.WriteLine("{0},{1}",stu.Name,stu.Name.GetHashCode());
}
public static void Set_Name(Student stu)
{
stu.Name = "tim";
//stu = new Student(){Name = "chengzhirui"} 这样会改变引用对象,一般不常用
Console.WriteLine("{0},{1}",stu.Name,stu.Name.Get