递归 C# 类的 VS2008 错误

发布于 2024-12-10 05:05:18 字数 1308 浏览 0 评论 0 原文

我在 VS2008 中有一个用 C# 编写的类。该类是递归的。

当我在调试时获取此类的实例并查看它时,VS2008 会停止几秒钟,然后调试会话退出。

任何想法可能是什么问题。

该类是

public class TextSection
{
    private bool used;
    private string id;
    private HL7V3_CD code;
    private string title;
    private string text;

    public List<TextSection> section;


    public TextSection()
    {
        used = false;
        section = new List<TextSection>();
    }

    public bool Used
    {
        get { return used; }
    }

    public string Title
    {
        get { return title; }
        set
        {
            used = true;
            title = value;
        }
    }

    public string Text
    {
        get { return text; }
        set
        {
            used = true;
            text = value;
        }
    }

    public string Id
    {
        get { return id; }
        set
        {
            used = true;
            id = value;
        }
    }

    public HL7V3_CD Code
    {
        get { return Code; }
        set
        {
            used = true;
            code = value;
        }
    }
}

调试 VS2008 退出前的屏幕截图时显示 此处

I have a class within VS2008 written in C#. The class is recursive.

When I nan instance of this class and view it whilst debugging, VS2008 stalls for a few seconds and then the debug session exits.

Any ideas what the problem might be.

The class is

public class TextSection
{
    private bool used;
    private string id;
    private HL7V3_CD code;
    private string title;
    private string text;

    public List<TextSection> section;


    public TextSection()
    {
        used = false;
        section = new List<TextSection>();
    }

    public bool Used
    {
        get { return used; }
    }

    public string Title
    {
        get { return title; }
        set
        {
            used = true;
            title = value;
        }
    }

    public string Text
    {
        get { return text; }
        set
        {
            used = true;
            text = value;
        }
    }

    public string Id
    {
        get { return id; }
        set
        {
            used = true;
            id = value;
        }
    }

    public HL7V3_CD Code
    {
        get { return Code; }
        set
        {
            used = true;
            code = value;
        }
    }
}

When debugging a screenshot of VS2008 before it exits is shown here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

残月升风 2024-12-17 05:05:18

问题是这个属性

public HL7V3_CD Code
{
    get { return Code; }
    set
    {
        used = true;
        code = value;
    }
}

它会生成一个StackOverflowException,当调试器尝试从属性Code获取值时,导致Code调用自身而不是返回变量的值

The problem is this property

public HL7V3_CD Code
{
    get { return Code; }
    set
    {
        used = true;
        code = value;
    }
}

It will generate a StackOverflowException, when the debugger tries to get the value from property Code, cause Code calls itself instead of returning the value of a variable

二货你真萌 2024-12-17 05:05:18

您应该将此段更改

public HL7V3_CD Code
{
    get { return Code; }
    set
    {
        used = true;
        code = value;
    }
}

public HL7V3_CD Code
{
    get { return code; }
    set
    {
        used = true;
        code = value;
    }
}

You should change this segment

public HL7V3_CD Code
{
    get { return Code; }
    set
    {
        used = true;
        code = value;
    }
}

to

public HL7V3_CD Code
{
    get { return code; }
    set
    {
        used = true;
        code = value;
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文