Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
470 views
in Technique[技术] by (71.8m points)

c# - Using a backing variable for getters and setters

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

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

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...