• c#中的new也是申堆内存吗?

  • 本文关于 c#
  • CodeGo.net > c#中的new也是申堆内存吗?
  •  

    c#中的new也是申堆内存吗?



    c#
    和c++中的一个样子?
    比如string[] str=new string[4];
    它需要人工删除吗?还是作用域退出后自动删除?
    本文地址 :CodeGo.net/1482696/
    -------------------------------------------------------------------------------------------------------------------------
    1.附:
    张柏芝上完厕所要抽水清空马桶吗?回答是 如果你张柏芝上完厕所和阿里妈妈一样用手按开关完成抽水清空马桶吗案是:根本不一样
    张柏芝的马桶的函数是当张柏芝离开马桶,马桶会自动抽水清空。
    2. 这就好像是张柏芝也要上厕所吗案是:是的 如果你张柏芝上的厕所和阿里妈妈的厕所一个样子吗案是:根本不一样。
    3. 看类型.
    对于值类型.直接在栈上创建.
    对于引用类型.则在堆上创建.不过这个堆和C++里的不是同一个.
    4. 别乱扯C++,完全不同的机制...
    .NET的new做两个工作,一是创建对象,二是调用构造函数...至于在哪儿创建,完全取决于对象类型...
    值类型对象(例如结构)是在堆栈上创建的,而引用类型对象(例如类)是在堆上创建的。两种类型的对象都是自动销毁的 CodeGo.net,但是,基于值类型的对象是在超出范围时销毁,而基于引用类型的对象则是在对该对象的最后一个引用被移除之后在某个不确定的时间销毁。
    5. 在内存的堆上配开辟一块空间,通常为引用类型配内存,不用自动释放,c#中有垃圾回收机制
    6. 引用类自动回收,你无法确定何时回收。值类型离开作用域释放栈
    7. PointF p;
    这样 编译器会提醒你 使用未赋值的变量 当然 你可以让p=....
    8. 非要往底层究的话你可以查看编译后的IL,new的时候的确差不多
    不过new还是用面向对象来理解更好吧,不要混为一谈,也没这必要
    9. 不需要手工删除,也是不是退出作用域自动删除的,.net有个垃圾回收机制,专门用来做这些事情
    10. 不需要手工删除,也是不是退出作用域自动删除的,.net有个垃圾回收机制,专门用来做这些事情
    本文标题 :c#中的new也是申堆内存吗?
    本文地址 :CodeGo.net/1482696/
    1. 命名用户控件。conventions?
    2. TCP/IP socket 问题
    3. 我怎么能值设置为rhino的对象?
    4. SQL语句把一列转化为行后 无法读取具体的值 为什么
    5. 从XSL生成HTML:FO使用C#
    6. Winfrom 自定义控件的双击事件及控件便利
    7. 有一种简单的方法来创建一个C#。与编码对话框NET的文件对话框?
    8. C# winform 能不能写个方法动态创建控件 然后调用这个方法
    9. 在C#中使用非ASCII字符和FileInfo的文件路径
    10. 计算同一事件发生两次的时间间隔

     
    

    Copyright © 2017 CodeGo.net
    http://codego.net/xinwen/ 足球比分网 足球比分 医药招商网 邵阳县新闻