值类型
int、double、char、decimal、bool、enum、struct
值类型在赋值的时候,传递的是这个值的本身。
引用类型
string、数组、自定义类、集合、object、接口
引用类型在赋值的时候,传递的是对这个对象的引用。
****(特殊string)字符串的不可变性 每次赋值都会从新开辟一块空间。
using System;
namespace 值传递和引用传递
{
class Program
{
static void Main(string[] args)
{
int n1 = 10;
int n2 = n1;
n2 = 20;
Console.WriteLine(n1);
Console.WriteLine(n2);
Person p1 = new Person();
p1.Name = "张三";
Person p2 = p1;
p2.Name = "李四";
Console.WriteLine(p1.Name);
Console.WriteLine(p2.Name);
}
}
public class Person
{
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
}
}
运行结果
10
20
李四
李四