zoukankan      html  css  js  c++  java
  • C#深入理解类型

    值类型:

      值类型通常存储在栈中,值类型管理由操作系统管理 

      

    引用类型:

      引用类型存储在堆中由GC管理

     引用类型嵌套定义值类型:

    值类型嵌套引用类型: 

    值类型继承自ValueType,ValueType有继承自System.Object 引用类型直接继承自System.Object

    值类型的内存不受GC控制,作用域结束后值类型会被操作系统自行释放,但是引用有GC来完成值类型性能能加存在优势

    类型转换

      隐式转换就是有低级别类型转换想高级别类型转换的过程,派生类可以隐式转换为他的父类。装箱过程就是属于这种隐式转换

      显示类型转换:这种转换可能会倒是损失精度,或者出现异常

      通过is和as运算符进行安全转换

      int i =3

      // 装箱

      object obj = i;

      // 拆箱

      int y = obj;

    代码的装箱过程式

    1.分配onj内存空间

    2.copy i变量的值放在内存中

    3.返回值存放的地址给obj变量 

    拆箱过程:

    1.检查o变量的值是否为null为null时发出异常,不为null检查拆箱后类型是否一直不一致异常

    2。返回o变量实际数据地址

    3。将托管堆中的数据复制到栈中

  • 相关阅读:
    PDO drivers no value 解决办法
    每日一题 2019.10.10
    每日一题2019.10.9
    每日一题 2019.9.30
    每日一题 2019.9.29
    每日一题 2019.9.26
    每日一题 2019.9.25
    Python 中的复数问题
    Pycharm 导入 pygame包报错问题
    每日一题 2019.9.24
  • 原文地址:https://www.cnblogs.com/-alvin/p/10905486.html
Copyright © 2011-2022 走看看