首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建对象时抛出System.StackOverflowException

创建对象时抛出System.StackOverflowException
EN

Stack Overflow用户
提问于 2019-07-06 03:17:18
回答 1查看 16关注 0票数 1

当我在控制台中运行我的代码时,我发现了这样的消息:由于StackOverflowException,进程正在终止。

代码语言:javascript
复制
public class MyDictionary< TKey, Tvalue> : Dictionary<TKey,Tvalue>
{
private MyDictionary<TKey, Tvalue> md;
public MyDictionary(int size)
{md = new MyDictionary<TKey, Tvalue>(size);}}
static void Main(string[] args)
{var sOn = new MyDictionary<int, string>(4);}

当我使用调试模式时,我在构造函数中发现了问题,但我不知道问题出在哪里?

EN

回答 1

Stack Overflow用户

发布于 2019-07-06 03:21:15

您的MyDictionary类包含一个MyDictionary实例。构造函数初始化这个成员,然后调用该成员上的构造函数,该成员有自己的成员,依此类推,直到您耗尽调用堆栈并获得异常。

您可能不需要此成员,但需要将size参数传递给base构造函数:

代码语言:javascript
复制
public class MyDictionary<TKey, Tvalue> : Dictionary<TKey, Tvalue>
{
    public MyDictionary(int size) : base(size) {}
    // Here ------------------------^

    static void Main(string[] args) 
    {
        var sOn = new MyDictionary<int, string>(4);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56908247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档