为了账号安全,请及时绑定邮箱和手机立即绑定

实例化对象的疑惑,希望前辈们指点。

实例化对象的疑惑,希望前辈们指点。

呼啦一阵风 2018-11-20 04:01:34
这段代码中,bank的内存分配是怎么样的?同时声明两个bank为什么又是错的?然后,在for语句后,我又怎么样才能区别这5个bank,还是它已经被垃圾回收了?
查看完整描述

2 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

每一次调用new关键字,比如下面的代码
Bank bank = new Bank(2001010, "kulong", "2006.05.1", "43011119870914", 5000);
此时在系统的堆(Heap)上,分配了一段空间,用于存放一个Bank对象的内容
随后在系统的栈(Stack)上,分配了一个指针,指向堆上分配的Bank对象

不能同时声明2个Bank是因为C#的语法不允许在一个域中有同名的变量,因此第2次声明应该去掉类型说明,代码可以如下
Bank bank = new Bank(xxx);
bank = new Bank(xxx); //这里不需要类型说明

在for循环后,所有的Bank都出了作用域,因此无法取值,也就没有区别的概念了

查看完整回答
反对 回复 2018-11-21
  • 2 回答
  • 0 关注
  • 474 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信