一:本质区别
值类型:每一个值类型都有一个独立的内存区域保存自己的值,调用它时,调用的是它的值
引用类型:调用的是内存地址
二:类型包括
值类型:
值
类
型
Int、double、bool、char
Struck 结构
Enum枚举
引用类型:
引
用
类
型
String
Object
Class类
三:代码解析
值类型:以结构为例
class Program { static void Main(string[] args) { Person p1 = new Person(); p1.Name = "王华"; p1.Age = 13; Person p2 = new Person(); p2 = p1; p2.Age = 18; Console.WriteLine(p1.Age); Console.WriteLine(p2.Age); Console.Read(); } } struct Person { string name; int age; public string Name { get { return name; } set { name = value; } } public int Age { get { return age; } set { age = value; } } }
运行结构为:13 18
引用类型:以类为例
static void Main(string[] args) { Person p1 = new Person(); p1.Name = "王华"; p1.Age = 13; Person p2 = new Person(); p2 = p1; p2.Age = 18; Console.WriteLine(p1.Age); Console.WriteLine(p2.Age); Console.Read(); } } class Person { string name; int age; public string Name { get { return name; } set { name = value; } } public int Age { get { return age; } set { age = value; } } }
运行结构为:18 18