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 member 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!
There is no advantage if you’re not using it. With the second approach, there is still a backing variable, but you’re letting the compiler do the work of adding it. As of .NET 3.5 and later, your current approach is perfectly valid.
Of course, as soon as you need to introduce extra logic, then managing the backing store yourself becomes critical.