Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用户实现的访问器_C#_Accessor - Fatal编程技术网

C# 用户实现的访问器

C# 用户实现的访问器,c#,accessor,C#,Accessor,我的代码目前是无限循环,我不知道为什么。我正在尝试实现一个get,set访问器,它检查接受的数字是否在0-100之间,如果不是,它将把值设置为零。我不能完全指出我做错了什么。任何帮助都将不胜感激 public double Quiz1 { get { return Quiz1; } set { if (value > 0 && value < 101) { Quiz1 = value;

我的代码目前是无限循环,我不知道为什么。我正在尝试实现一个get,set访问器,它检查接受的数字是否在0-100之间,如果不是,它将把值设置为零。我不能完全指出我做错了什么。任何帮助都将不胜感激

public double Quiz1
{
    get { return Quiz1; }
    set 
    {
        if (value > 0 && value < 101)
        {
            Quiz1 = value;
        }
        else
        {
            Quiz1 = 0;
        }
    }
}
公共双Quiz1
{
获取{return Quiz1;}
设置
{
如果(值>0&&值<101)
{
Quiz1=数值;
}
其他的
{
Quiz1=0;
}
}
}

当你在
get
ter内部说
return Quiz1
时,你在一次又一次地递归调用
get
ter

(例如,
public-double-Quiz1{get;set;}
)提供一个隐藏字段,属性值实际存储在该字段中

为属性实现(非自动)
get
set
方法时,没有自动生成的支持字段

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

private double m_quiz1;

public double Quiz1
{
    get { return m_quiz1; }
    set 
    {
        if (value > 0 && value < 101)
        {
            m_quiz1= value;
        }
        else
        {
            m_quiz1= 0;
        }
    }
}
private double m_quiz1;
公共双Quiz1
{
获取{return m_quiz1;}
设置
{
如果(值>0&&值<101)
{
m_quiz1=数值;
}
其他的
{
m_quiz1=0;
}
}
}
另见:

  • -MSDN