C#中的值类型和引用类型

时间:2023-02-17 21:07:13

一:本质区别

值类型:每一个值类型都有一个独立的内存区域保存自己的值,调用它时,调用的是它的值

引用类型:调用的是内存地址

二:类型包括

值类型:     

 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