Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.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#_Oop_Class_Properties - Fatal编程技术网

私有集合属性在类中设置的正确方法?c#

私有集合属性在类中设置的正确方法?c#,c#,oop,class,properties,C#,Oop,Class,Properties,可能重复: 我还在学C。无论如何,我有一个简单的问题,但我不确定正常的方式做这件事。假设我在课堂上有以下内容 private int _questionNo; public int QuestionNo { get { return _questionNo; } private set { _questionNo = value;

可能重复:

我还在学C。无论如何,我有一个简单的问题,但我不确定正常的方式做这件事。假设我在课堂上有以下内容

private int _questionNo;

public int QuestionNo

    {
        get
        {
            return _questionNo;
        }

        private set
        {
            _questionNo = value;
            PropChanged("QuestionNo");
        }

    }
如果我想在类本身中设置属性,我应该使用

_questionNo = number;


您应该始终使用公共getter setter,并且永远不要将私有支持字段从getter setter内部移开,当然,除非您不希望setter内部的事件发生

QuestionNo = number;

这样做的原因是,如果您需要更改Setter中希望发生的事情,您不必更改所有变量。

您应该始终使用公共getter Setter,并且永远不要在getter Setter内部接触私有backing字段,当然,除非您不希望Setter中的事件发生

QuestionNo = number;

这样做的原因是,如果您需要更改Setter中希望发生的事情,则不必更改所有变量。

您可能应该使用
QuestionNo
属性,除非出于某种原因您不希望
PropChanged
触发

您可能应该使用
QuestionNo
属性,除非出于某种原因您不希望
PropChanged
触发

使用
QuestionNo=number
属性。 我建议使用公共方法,您可以访问并指定属性,例如

public changemethod(int value)
{
    this.QuestionNo = value;
}
public int QuestionNo { get; set; }

使用
QuestionNo=number
属性。 我建议使用公共方法,您可以访问并指定属性,例如

public changemethod(int value)
{
    this.QuestionNo = value;
}
public int QuestionNo { get; set; }

如果可以直接访问setter,为什么要使用方法?如果可以直接访问setter,为什么要使用方法?