markzzz
markzzz

Reputation: 47995

An unhandled exception of type 'System.StackOverflowException' occurred

Why this? This is my code :

public class KPage
{
    public KPage()
    {
       this.Titolo = "example";
    }

    public string Titolo
    {
        get { return Titolo; }
        set { Titolo = value; }
    }
}

I set data by the constructor. So, I'd like to do somethings like

KPage page = new KPage();
Response.Write(page.Titolo);

but I get that error on :

set { Titolo = value; }

Upvotes: 9

Views: 66870

Answers (3)

Oded
Oded

Reputation: 499142

You have an infinite loop here:

public string Titolo
{
    get { return Titolo; }
    set { Titolo = value; }
}

The moment you refer to Titolo in your code, the getter or setter call the getter which calls the getter which calls the getter which calls the getter which calls the getter... Bam - StackOverflowException.

Either use a backing field or use auto implemented properties:

public string Titolo
{
    get;
    set;
}

Or:

private string titolo;
public string Titolo
{
    get { return titolo; }
    set { titolo = value; }
}

Upvotes: 39

user7116
user7116

Reputation: 64098

You have a self-referential setter. You probably meant to use auto-properties:

public string Titolo
{
    get;
    set;
}

Upvotes: 3

Albin Sunnanbo
Albin Sunnanbo

Reputation: 47058

Change to

public class KPage
{
    public KPage()
    {
       this.Titolo = "example";
    }

    public string Titolo
    {
        get;
        set;
    }
}

Upvotes: 2

Related Questions