解决方案 »
- c#如何打开任意程序?
- 下载文件模块 “将对象引用设置到对象的实例”错误~
- 关于c#书
- |M| DataGri在绑定的时候如何来定义他的字段明 我是学ASP.NET的突然做WinForm感觉很麻烦
- 关于C#系统服务
- 我该如何获得当前程序的所有 的线程,并进行关闭?引用 Knight94(愚翁)
- 对。NET的兴建项目的小疑问!
- 求助c#实现屏幕录像(desktop record OR Screen record)
- 哈希解密问题??????????????
- 问水晶报表的几个基础问题
- 如何用C#从零创建一个access数据库呢?
- mdi父窗体上放一个groupbox控件,打开子窗体后,groupbox会把子窗体遮住
{
A a;
}
如果B的一个实例b存活着,那么通过元数据表描述,知道它有个成员A a,b引用a,所以a也应添加到存活对象的链表去:class A{}
class B
{
A a;
}
谢谢你的回答!~
但是我觉得所谓的存活对象链表指的是从根对象开始,检查对象内对其他对象的引用而创建的链表吧?
这样的话,对象B内即使有对象A的变量,但是该变量未必有对对象A的引用吧?
例如:
class A{}
class B
{
A a=null;
}所以元数据表应该只是描述对象内有哪些成员,但是该成员并不一定拥有对另一对象的引用吧?
所以我觉得“通过元数据的描述来创建存活对象链表”好像不正确吧??
可能我说的不对。。请指教!~~~~~~~谢谢!!!!~~~
"假设为B1集合" 也应该是指的无数据具体的可以看看 .net框架设计 中关于GC的章节
Metadata是.NET平台的核心灵魂 Metadata是.NET支持垃圾收集GC的基础
metadata标记了对象与对象间的引用关系,这是GC遍历对象图(判断对象是否可以收集)的关键依据。没有metadata,GC将不知道0×000688是一个指针(需要继续遍历)?还是一个整数(不需要继续遍历)?