请问2个实体类,互为成员时,实例化的时候内存是个什么状况

PerfectStar 2012-08-02 03:40:07
比如:
public Class A
{
public B b;
}

public Class B
{
public A a;
}
实例化的时候内存是个什么状况
比如
A a1=new A();
会不会造成死循环,为什么呢?
...全文
115 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qldsrx 2012-08-02
  • 打赏
  • 举报
回复
如果是结构体,这样写将报错,如果是类,这样写正常。
结构体和类都是先有声明再有内部实现,因此不但可以互为成员,甚至将自身设置为成员都可以,只不过结构体在自身没完成定义之前,是不能使用的,对其内部布局时用到的所有结构体必须是完成定义的结构体,否则无法进行布局嵌入,而指针或类的话就不需要,只要有个类型声明即可,嵌入的仅仅是地址。
bdmh 2012-08-02
  • 打赏
  • 举报
回复
new A时,A中的b只是声明,并没有创建实例,如果在A的构造函数中创建B,那么就会调用B的构造函数,如果B的构造函数中又创建A,那么就是死循环
ViewStates 2012-08-02
  • 打赏
  • 举报
回复
A在实例化的时候会将你的b置为null,所以不会有死循环。
但当你两个对象中在申明字段时都实例化了就死了。

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧