• 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。

     

     

  • 相关阅读:
    sort,uniq,wc,tr
    cut
    more,less,head,tail
    cat
    mv
    WordPress调用全文阅读和截取文章摘要
    板邓:css ol 列表序列号样式
    小板邓:wordpress如何扩展TinyMCE编辑器,添加自定义按钮及功能
    wordpress前台显示顶部管理工具导航条
    SQL的主键和外键的作用
  • 原文地址:https://www.cnblogs.com/lsfv/p/6699020.html
Copyright © 2020-2023  润新知