zoukankan      html  css  js  c++  java
  • 关于C#中 的引用类型需要实例化,值类型不需要实例化的理解

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

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

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

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

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

  • 相关阅读:
    PHP之数据库操作(一)
    PHP之字符串操作
    Subline使用方法
    POST和GET的区别(面试回答)
    面试题(1)
    http协议
    JS 闭包(内存溢出与内存泄漏)(垃圾回收机制)
    JS----事件机制 事件冒泡 事件捕获 事件委托
    js的数据类型、判断对象类型 js对象
    JS----DOM节点操作:创建 ,插入,删除,复制,查找节点
  • 原文地址:https://www.cnblogs.com/qq1186139850/p/5138592.html
Copyright © 2011-2022 走看看