1、值类型与引用类型的区别?
a)、值类型和引用类型在内存中存储的地方不一样。
b)、在传递值类型和传递引用类型的时候,传递的方式不一样。值类型称之为值传递,引用类型称之为引用传递。
c)、值类型存储在栈中,引用类型存储在堆中。
2、值类型与引用类型有哪些?
值类型有:int、double、decimal、float、bool、char、enum、struct。
引用类型:数组、类、字符串、接口。
3、值类型和引用类型在内存开辟空间的方式?

根据上图分析:
int number = 10; 是值类型,直接在栈中开辟空间。
string s = "123";是引用类型,在栈中也开辟空间,在栈上存放的是在堆中的地址(引用)。每当在内存中开辟空间,都会有对应的地址。
1、普通引用例子练习。
新建1个名叫Person的类:
public class Person
{
public int Age { get; set; }
public string Name { get; set; }
}
后台代码:
class Program
{
static void Main(string[] args)
{
//实例化对象1。
Person p1 = new Person();
p1.Name = "我是Person1";
//实例化对象2。
Person p2 = new Person();
p2.Name = "我是Person2";
//声明对象3,为其指定值。
Person p3 = p1;
p3.Name = "我是Person3";
//打印p1.Name的属性值。
Console.WriteLine(p1.Name);
Console.ReadLine();
}
}
打印结果:

2、字符串练习(字符串比较特殊)。
class Program
{
static void Main(string[] args)
{
string s1 = "S1";
string s2 = "S2";
string s3 = s1;
s3 = "S3";
Console.WriteLine(s1);
Console.ReadKey();
}
}
输出结果为:

End!
浙公网安备 33010602011771号