首先,我已阅读了关于此主题的帖子列表,并且我并不认为我已经掌握了属性,因为我已经了解了封装和字段修饰符(私有,公共...等)。属性与字段:需要帮助掌握属性在字段上的用法
我已经学习了C#的一个主要方面,就是使用封装在代码中保护数据的重要性。我'认为'我明白这是因为使用修饰语(私人,公共,内部,受保护)的能力。然而,在了解了属性之后,我不仅在理解属性的使用方面存在困难,而且在理解C#中数据保护的整体重要性/能力(我认为是封装)。
更具体地讲,一切我已阅读,当我在C#中得到了性质是,你应该尝试使用他们在的地方字段时,你可以因为:
1)它们允许你如果直接直接访问字段时无法更改数据类型。
2)他们的保护级别添加到数据访问
然而,从我“想”我是来了解采用现场改性剂做了#2,这在我看来,性质只是生成额外的代码,除非你有理由改变类型(#1) - 因为你(或多或少)创建隐藏的方法来访问字段,而不是直接。
然后就是可以将所有修饰符添加到属性中,这进一步使我对需要属性访问数据的理解变得复杂。
我已经阅读了许多关于“属性”的不同作者的章节,没有一篇真正解释了对属性与字段与封装(以及良好的编程方法)的良好理解。
有人能解释一下:
1)我为什么要使用属性,而不是领域(尤其是当它出现,我只是添加额外的代码
2)上的任何提示在追踪其他人的代码时,认识到使用属性并且不把它们视为简单的方法(除get; set是显而易见的)?
3)任何一般的经验法则,当涉及到什么时候使用什么好的编程方法?
感谢和抱歉的长篇文章 - 我不想问一个已经被问到100x的问题,而没有解释我为什么再次提问。
重复? http://stackoverflow.com/questions/2911945/method-calling-public-private-members-or-methods-best-practice-c-net/ – 2010-06-18 13:24:07
似乎没有人链接到[为什么属性](http:///csharpindepth.com/Articles/Chapter8/PropertiesMatter.aspx)。在过去,我发现这个概述很有帮助。 – R0MANARMY 2010-06-18 14:19:04