类A中有方法fa1和fa2。这两个方法都实现了对类B的实例化,而且语句一样,既实例化的参数名一样。
public void fa1
{
B b = new B();
}
public void fa2
{
B b = new B();
}
现在实例化A后调用fa1然后再调用fa2,不会出现冲突,为什么?
调用fa1后b是什么状态?可以再调用fa1?
public void fa1
{
B b = new B();
}
public void fa2
{
B b = new B();
}
现在实例化A后调用fa1然后再调用fa2,不会出现冲突,为什么?
调用fa1后b是什么状态?可以再调用fa1?
解决方案 »
- 有3个C#的DLL,PB程序要调用,该怎么做? 急
- 大侠请进,3D旅游环境模拟系统,100分献上。。。
- 快五年了,不知道这个问题有没人会。
- 我写了段生成0-3之间的随机数的代码但是我觉得不太好谁有更好的吗 谢谢了
- C++代码转c#
- Listview怎么控制滚动条啊?
- 求救!高手进——开机锁定如何实现!
- 生成TreeView树节点问题?
- .net安装后出现后新建ASP.NET项目,出现http://localhost/webapplication1的地址和e:/inteput/wwwroot不符。请从新指定路径?怎么解决这
- 怎么样控制picturebox中的GIF文件只播放一次?
- [winforms]: 查询数据库年龄段问题
- DataGrid删除最后一页的问题
问题2:调用完fa1后,b的去处你就不用管了,垃圾收集器去处理了。
fa1中的B类对象b与fa2中的B类对象b,不是同一个实例。
其门牌号码分别为fb1.b fb2.b 就像上海 武汉 都有南京路
对b的引用为空,我的这种说法可能更加深刻了一点。我的意思是,b或许还存在,或许在离开函数的时候,就立刻被垃圾回收,这个时间不能确定。但确定的是,b迟早会被垃圾回收(因为B是引用类型,分配在托管堆上),要被垃圾回收的前提就是,没有任何一个对象保持着对它的引用,也就是,对b的引用为空。
具体怎么做的,这又是一个可以深入研究的话题。