【问题标题】:What is the difference between a field and an auto property? [duplicate]字段和自动属性有什么区别? [复制]
【发布时间】:2013-05-13 21:56:21
【问题描述】:

我看不出这两个类有什么区别:

class Class1
{
    public int a;
}

class Class2
{
    public int a { get; set; }
}

可以使用前者,为什么还要使用后者?

【问题讨论】:

标签: c#


【解决方案1】:

使用属性,您可以在事后将“变量”转换为 getter/setter 范例,并且您会破坏更少的代码

属性也倾向于在使用反射的框架中更好地发挥作用

【讨论】:

  • 虽然我同意你的观点并且这通常被认为是真正的原因,但 IMO 的第一个论点并没有真正的意义。您可以轻松地将字段转换为属性。
  • 另外,属性可以在接口中声明,但字段不能。
  • 你说得对,我忘了那个。但是,在大多数情况下,您要么可以控制其他应用程序(我说的最多),即使您没有,如果您进行此更改,您也可能会更改其他内容,因此无论如何都需要重新编译.无论如何,我认为我们在整个观点上都同意。
【解决方案2】:
public int a { get; set; }

定义一个属性: http://msdn.microsoft.com/en-us/library/k69wcs43.aspx

Getter 和 Setter 是隐含的

【讨论】:

    猜你喜欢
    • 2021-09-03
    • 1970-01-01
    • 2018-04-28
    • 2019-03-07
    • 2019-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    相关资源
    最近更新 更多