2 Stimmen

VS2008 Fehler mit rekursiver C# Klasse

Ich habe eine Klasse innerhalb von VS2008 geschrieben in C#. Die Klasse ist rekursiv.

Wenn ich eine Instanz dieser Klasse erstelle und sie während des Debuggens anschaue , bleibt VS2008 einige Sekunden lang stehen und dann wird die Debugging-Sitzung beendet.

Ideen, was das Problem sein könnte:

Die Klasse sieht wie folgt aus:

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

    public List section;

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

    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;
        }
    }
}

Beim Debuggen wird ein Bildschirmfoto von VS2008 angezeigt, bevor es beendet wird, hier.

6voto

Jehof Punkte 33506

Das Problem liegt bei dieser Eigenschaft

public HL7V3_CD Code
{
    get { return Code; }
    set
    {
        verwendet = true;
        code = Wert;
    }
}

Es wird eine StackOverflowException generieren, wenn der Debugger versucht, den Wert der Eigenschaft Code zu erhalten, da Code sich selbst aufruft, anstatt den Wert einer Variable zurückzugeben

6voto

Kiril Popov Punkte 376

Du solltest dieses Segment ändern

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X