2
我开始了新的工作一对夫妇前使用C#周的(事情我已经基本上开始学习-since-在那里),我已经看到一对夫妇的做事方式,我很好奇,为什么(看到,因为我倾向于清新,他们都拿起东西在过去几年。)
基本上,我试图找出原因:
private int i;
优于:
private int I {get;set;}
如果答案是(我怀疑),额外的IL生成用于调用GET /套,那么为什么做autoimplemented获得/套都存在吗?为什么逊于
public int i;
:
public int I{get;set;}
更奇怪的是,别的我为什么不只是总是使用性质,或者为什么我不会避免autoimplemented方法,如瘟疫,一个或另一个。
我知道这听起来像是一个逻辑问题,当我想到它时,却没有那么多,所以我希望它写出某种意义。
感谢
一般情况下,你会* *经常使用性能。我认为这是你的问题的答案,或者至少是你应该寻求的答案。至于它们为什么存在,考虑到这些属性是在私有字段的引擎下实现的,所以为了使属性正常工作,私有字段*需要被支持。因此,删除此功能将不会有多大意义。此外,自动属性(在问题中显示的简写语法)不是直到后来才为C#发明的,因此,不久前,程序员不得不手动编写所有后备字段。 – 2012-02-17 21:52:10
你使用属性的原因是(你的'int I {get; set;}')是因为属性是你希望外界看到你的类的方式。 私人财产本质上是无用的。 您想使用公共属性而不是公共字段的原因主要是风格,不仅适用于您,也适用于使用反射的任何程序。 – 2012-02-17 21:53:07
这已经回答 [这里] [1] [1]:http://stackoverflow.com/questions/3035790/purpose-of-getters-and-setters – 2012-02-17 21:55:41