Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using a backing variable for getters and setters

Tags:

c#

.net

Perhaps this is a silly question, however, I am resonable new to C# (more from a Java background) and have got confused between different examples I have seen regarding getters and setters of a property.

In some situations the code looks like this:

    private string _something;
    public string Something
    {
        get { return _something; }
        set { _something = value; }
    }

However, in other examples they do not use this backing memeber and so it is more like this:

    public string Something { get; set; }

I do not really see the benefit of using these backing variables (_something) unless of course you have some complex logic regarding the setting of the variables.

I am writing my program using the latter approach, but wanted to check I have not missed anything.

Can someone please explain simply why people chose to do the former? Is it more 'good practice'?

Thanks a lot!

like image 214
rioubenson Avatar asked Oct 04 '12 21:10

rioubenson


1 Answers

One good reason to use the first syntax is for use with MVVM architectures where your properties are bound to front end elements.

Something like:

    private string _something;
    public string Something
    {
        get { return _something; }
        set { 
              _something = value; 
              OnNotifyPropertyChanged("Something");
            }
    }

That would alert your front end that its bound property has been changed and it has to update.

like image 105
Jordan Kaye Avatar answered Sep 23 '22 05:09

Jordan Kaye