zoukankan      html  css  js  c++  java
  • c# 相对底层的认识

    学习c++之后,重新认识下c#,发现好理解 多 了 。记录 下 。

     1在内存中的存放

    值类型在栈中,

    引用类型在堆中(new 对于值类型只是一个障眼法)。

    2.参数的传递内存本质

    值类型,   按位copy传递,值类型本身包含数据,所以按位copy,等于copy传递了数据本省的副本。
    引用类型,按位copy传递,但是引用类型本身是指针,所以按位copy,等于copy传递了一个地址而已。

    3.参数的ref .out 语法糖

    类型 本质 具体表现 c++的同等表示  
    无修饰   (Class a) 指针(如果是值类型,就是指本身) 修改数据会导致外部的变化,但是不能修改指针本身  ClassA*  
    ref  (ref Class a) 指针的指针(如果是值类型就是值的指针) 既可以修改数据,也可以修改指针 ClassA**  
    out(out class a) null指针的指针 (进:强制空,出:强制赋值) 主要是表示必须给一个新对象的指针给外部,用于多返回值问题。    

     

     

     

     

     

     

    out:函数外不需要先创建对象,再 传参数 。因为函数内部 ,一定 会赋值。 如果非要创建,那就不需要额外的out 说明了 。

     

    3.内存的释放

    using 语句中使用的对象必须实现 IDisposable 接口,当离开作用范围,会自动执行dispose。

     

     

  • 相关阅读:
    关于表单的jQuery练习
    jQuery中的综合动画
    jQuery中自定义简单动画的实现
    清除浮动
    定位
    盒子模型
    笔记
    笔记
    翻页
    DOM
  • 原文地址:https://www.cnblogs.com/lsfv/p/6699020.html
Copyright © 2011-2022 走看看