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
127 views
in Technique[技术] by (71.8m points)

c# - Changing fields to property is a breaking change under what scenarios?

While reading Jon Skeet's article on fields vs properties he mentions that changing fields to properties is a breaking change.

I would like to understand the common scenarios in which this change can cause breaks. Along with the scenario, if you can, please provide any details.

For starters, the following points have been mentioned elsewhere:

  • You can't change fields to properties if you are using reflection on the class. This is obvious even though I don't have details. Serialization is one scenario where reflection is used to iterate over the object and changing fields to properties will break the serializer or change the output

  • You can't easily bind against fields. (Why is this? I read it here)

  • ???

EDIT: Robert has a comprehensive list of reasons for choosing properties over fields and also explains how switching between them can cause a breaking change.

See Question&Answers more detail:os

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

1 Reply

0 votes
by (71.8m points)

If you have a public field and another assembly has code that is using it, it will need to be recompiled.

IOW the definition of breaking includes "will need to be recompiled".


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

...