#region 问题一如何判断值类型和引用类型
//F12进到类型的内部去查看
//是class就是引用
//是struct就是值
#endregion
#region 问题二语句块
//命名空间
// ↓
//类、接口、结构体
// ↓
//函数、属性、索引器、运算符重载等(类、接口、结构体)
// ↓
//条件分支、循环
//上层语句块:类、结构体
//中层语句块:函数
//底层的语句块:条件分支循环等
//我们的逻辑代码写在哪里?
//函数、条件分支、循环-中底层语句块中
//我们的变量可以申明在哪里?
//上、中、底都能申明变量
//上层语句块中:成员变量
//中、底层语句块中:临时变量
#endregion
#region 问题三变量的生命周期
//编程时大部分都是临时变量
//在中底层申明的临时变量(函数、条件分支、循环语句块等)
//语句块执行结束
//没有被记录的对象将被回收或变成垃圾
//值类型:被系统自动回收
//引用类型:栈上用于存地址的房间被系统自动回收,堆中具体内容变成垃圾,待下次GC回收
//想要不被回收或者不变垃圾
//必须将其记录下来
//如何记录?
//在更高层级记录或者
//使用静态全局变量记录
#endregion
#region 问题四结构体中的值和引用
//结构体本身是值类型
//前提:该结构体没有做为其它类的成员
//在结构体中的值,栈中存储值具体的内容
//在结构体中的引用,堆中存储引用具体的内容
//引用类型始终存储在堆中
//真正通过结构体使用其中引用类型时只是顺藤摸瓜
#endregion
#region 问题五类中的值和引用
//类本身是引用类型
//在类中的值,堆中存储具体的值
//在类中的引用,堆中存储具体的值
//值类型跟着大哥走,引用类型一根筋
#endregion
#region 问题六数组中的存储规则
//数组本身是引用类型
//值类型数组,堆中房间存具体内容
//引用类型数组,堆中房间存地址
#endregion
# region 问题七结构体继承接口
//利用里氏替换原则,用接口容器装载结构体存在装箱拆箱
# endregion
C#核心知识回顾——18.值类型和引用类型的相关问题
猜你喜欢
转载自blog.csdn.net/qq_29296473/article/details/132040340
今日推荐
周排行