
c# 为什么我在form类中定义自定义类的对象时,会出现stackoverflowexception堆栈溢出现象,有截图~
3个回答
展开全部
当Form1或是Button_for_map实例化时会造成Form1中有一个字段a会被实例化,而实例化a时表示button_for_map被实例化,
于是新实例化的button_for_map基类Form1中的a再次被实例化,然后循环往复,一直到堆栈溢出。
将button_for_map a = new button_for_map移出到实际需要使用的地方,或是设置为静态字段,这样只会实例化一次了。
于是新实例化的button_for_map基类Form1中的a再次被实例化,然后循环往复,一直到堆栈溢出。
将button_for_map a = new button_for_map移出到实际需要使用的地方,或是设置为静态字段,这样只会实例化一次了。
展开全部
我测试了,没问题,不知道你那是哪里出问题了!
我擦,我看到了,你继承的是button_for_map:Form1
但是Form1里面又写着,new button_for_map();
所以在程序运行时,会实例化Form1同时呢就去new button_for_map();又会调用From1中的,这句
递归式的实例化button_for_map();导致内存溢出!
我擦,我看到了,你继承的是button_for_map:Form1
但是Form1里面又写着,new button_for_map();
所以在程序运行时,会实例化Form1同时呢就去new button_for_map();又会调用From1中的,这句
递归式的实例化button_for_map();导致内存溢出!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Form1是button_for_map的基类,子类初始化的时候会调用基类的构造函数,问题的原因已经提示你了:确保没有无限循环或无限递归,你改下,直接以Form做基类,这个问题应该不会出现了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询