当前位置:  开发笔记 > 编程语言 > 正文

.net垃圾收集和托管资源

如何解决《.net垃圾收集和托管资源》经验,为你挑选了1个好方法。

来自原始数据类型(int,char等)的内存是在它们离开作用域后立即释放,还是添加到垃圾收集中以供以后发布?

考虑:

For x as integer=0 to 1000
dim y as integer
Next

如果这不会将垃圾收集器中的1000个整数添加到以后清理,它如何处理字符串对象?这会创建1000个字符串以便以后清理吗?

For x as integer=0 to 1000
dim y as string=""
Next

如何只包含int,string等...数据类型的结构?

仅包含托管资源的类?



1> Jon Skeet..:

好的,只有两个答案,已经有错误信息...

字符串不是基本类型

字符串不是值类型

值类型值并不总是在堆栈上创建 - 它取决于变量的位置.如果它是类的一部分,它将与该对象的其余数据一起存储在堆上.

如果它们被捕获,甚至局部变量也可以在堆上结束(例如,在匿名函数和迭代器块中)

诸如""之类的字符串文字被实习 - 它们总是解析为相同的字符串.该循环实际上不会创建任何字符串.

有关更多信息,请参阅我的文章,了解.NET内存中的内容.您可能还想考虑它是否重要.


不,不是:http://msdn.microsoft.com/en-us/library/system.type.isprimitive.aspx"原始类型是布尔,字节,SByte,Int16,UInt16,Int32,UInt32,Int64,UInt64, IntPtr,UIntPtr,Char,Double和Single." 我相信VB规范:)
推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有