When to use get; set; in c#

前端 未结 9 1202
庸人自扰
庸人自扰 2020-12-29 20:59

I\'m failing to understand what the difference is between initializing a variable, getting its value like this:

 //define a local variable.
   int i;

   i=          


        
9条回答
  •  庸人自扰
    2020-12-29 21:33

    The part confusing me was the terms accessor, mutator and property, along with the { get; set; }, as though it's some magical improvement alias over just making the field public.

    • accessor = method to access a private field (in C#, both getter/setter)
    • mutator = method to change a private field (just a setter)
    • property = same as an accessor in C#.

    Purely as:

    private int myNumber;
    public int MyNumber { get; set; }
    

    they are totally useless, serving as noise code version for:

    public int myNumber;
    

    If, however you add some checks like so:

    private int myNumber;
    public int MyNumber
    {
        get
        {
            return myNumber;
        }
        set
        {
            if (myNumber < 0)
                throw new ArgumentOutOfRangeException;
            myNumber = value;
        }
    }
    

    ..then they do actually serve the regular used-to getter/setter purpose.

提交回复
热议问题