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。将托管堆中的数据复制到栈中

  • 相关阅读:
    CF351A Jeff and Rounding 思维
    CF352B Jeff and Periods 模拟
    CF352A Jeff and Digits
    小B的询问 莫队分块
    小凯的疑惑 数学
    BestCoder Round #80 待填坑
    [SDOI2009]HH的项链 树状数组 BZOJ 1878
    Blocks poj 区间dp
    [USACO5.4]奶牛的电信Telecowmunication 最小割
    数位dp
  • 原文地址:https://www.cnblogs.com/-alvin/p/10905486.html
Copyright © 2011-2022 走看看