• 关于C#中 的引用类型需要实例化,值类型不需要实例化的理解


      引用类型需要实例化,值类型不需要实例化。严格来说,这句话是错误的;粗略来讲,是不准确的。

      值类型的值就是一个具体对象,不需要创建。

      《语言组织中,,,,,,敬请期待》

      所以我最终的理解是:C#是完全面向对象的语言,那么在程序代码中,我们看到的每个变量,它都是对象,不管这个变量是值类型的还是引用类型的;变量有变量名和变量值的之分,类有类定义和具体类对象之分;那么变量名就表示某种类型的对象,但是变量名对象的具体值是什么呢,所以引用类型用new关键字在内存堆中创建创建具体的值(类的对象),并且把该具体值在内存堆中的引用赋值给了变量名对象,值类型也要创建一个具体值给变量名对象,值类型创建具体值的过程,可以用new关键字,也可以不用new关键字,原因我认为是值类型的具体值是具体的,是不需要定义的,就像是数学中的公理,不需要证明,就可以用,也像化学中的原子,不可再分,直接把具体值赋值给变量名对象即可。

      一句话总结:不管是值类型的变量,还是引用类型的变量,他们都表示对象,他们的具体值都需要创建,只是创建的方式不一样,存储在栈中和存储在堆中的区别。就好像面向过程中说的:变量要先定义,再赋初始值,最后才能使用是一个道理。

  • 相关阅读:
    [BZOJ2431] [HAOI2009]逆序对数列
    [Luogu2323] [HNOI2006]公路修建问题
    [Luogu2455] [SDOI2006]线性方程组
    [BZOJ3550] [Sdoi2014]数数
    [Noip2017] 列队
    [Luogu2824] [HEOI2016/TJOI2016]排序
    [BZOJ1060] [ZJOI2007]时态同步
    P1036 选数 题解
    快速幂取模算法详解
    同余定理及其应用
  • 原文地址:https://www.cnblogs.com/qq1186139850/p/5138592.html
Copyright © 2020-2023  润新知