Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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!

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
463 views
Welcome To Ask or Share your Answers For Others

1 Answer

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.

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...