用户实现的访问器

时间:2014-03-26 06:29:53

标签: c# accessor

我的代码目前无限循环,我不知道为什么。我试图实现一个get,set访问器,检查接受的数字是否在0-100之间,如果不是,它将设置值等于零。我不能完全理解我所做错的任何帮助,我们将非常感激。

public double Quiz1
{
    get { return Quiz1; }
    set 
    {
        if (value > 0 && value < 101)
        {
            Quiz1 = value;
        }
        else
        {
            Quiz1 = 0;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

当你在return Quiz1之内说get时,你会一遍又一遍地递归调用get

Auto-Implemented Properties(例如public double Quiz1 { get; set; })提供了一个隐藏字段,其中属性的值实际存储。

为属性实施traditional(非自动)getset方法时,没有自动生成的支持字段。

因此,您通常还需要添加一个支持变量:

private double m_quiz1;

public double Quiz1
{
    get { return m_quiz1; }
    set 
    {
        if (value > 0 && value < 101)
        {
            m_quiz1= value;
        }
        else
        {
            m_quiz1= 0;
        }
    }
}

另见: