c# 为什么我在form类中定义自定义类的对象时,会出现stackoverflowexception堆栈溢出现象,有截图~

这个是自定义类这个是form类,此处定义对象时出现堆栈溢出这是错误截图多谢各位大神指教!... 这个是自定义类
这个是form类,此处定义对象时出现堆栈溢出
这是错误截图
多谢各位大神指教!
展开
 我来答
哲事姓无
2013-08-09 · TA获得超过1177个赞
知道小有建树答主
回答量:903
采纳率:100%
帮助的人:460万
展开全部
当Form1或是Button_for_map实例化时会造成Form1中有一个字段a会被实例化,而实例化a时表示button_for_map被实例化,
于是新实例化的button_for_map基类Form1中的a再次被实例化,然后循环往复,一直到堆栈溢出。

将button_for_map a = new button_for_map移出到实际需要使用的地方,或是设置为静态字段,这样只会实例化一次了。
y85171642
2013-08-09 · TA获得超过130个赞
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:80万
展开全部
我测试了,没问题,不知道你那是哪里出问题了!
我擦,我看到了,你继承的是button_for_map:Form1
但是Form1里面又写着,new button_for_map();
所以在程序运行时,会实例化Form1同时呢就去new button_for_map();又会调用From1中的,这句
递归式的实例化button_for_map();导致内存溢出!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
赢桓
2013-08-09 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:73
采纳率:100%
帮助的人:56.7万
展开全部
Form1是button_for_map的基类,子类初始化的时候会调用基类的构造函数,问题的原因已经提示你了:确保没有无限循环或无限递归,你改下,直接以Form做基类,这个问题应该不会出现了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式