9

为什么这个?这是我的代码:

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

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

我通过构造函数设置数据。所以,我想做一些类似的事情

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

但我得到那个错误:

set { Titolo = value; }
4

3 回答 3

39

你在这里有一个无限循环:

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

您在代码中引用的那一刻Titolo,getter 或 setter 调用 getter 调用 getter 调用 getter 调用 getter 调用 getter... Bam - StackOverflowException

使用支持字段或使用自动实现的属性

public string Titolo
{
    get;
    set;
}

或者:

private string titolo;
public string Titolo
{
    get { return titolo; }
    set { titolo = value; }
}
于 2012-04-04T19:59:28.680 回答
3

你有一个自引用设置器。您可能打算使用自动属性:

public string Titolo
{
    get;
    set;
}
于 2012-04-04T19:59:55.447 回答
2

改成

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

    public string Titolo
    {
        get;
        set;
    }
}
于 2012-04-04T19:59:26.003 回答