在私有字段和get / set方法上使用Properties有什么好处?

时间:2015-11-23 10:09:10

标签: c# oop properties field encapsulation

我最近一直在编写类,并使用私有字段和get / set方法来访问这些私有字段。一位朋友告诉我,我使用Auto Implemented属性,因为它可以节省我编程的时间。我想知道这两种方法之间的主要区别是什么,以及Auto Implemented属性是否保持"字段"在运行时私人。

例如我的朋友说我应该用这个:

public int MyProperty { get; set; }

以前我使用类似的东西:

private int field;

public void setField(int i)
{
    field = i;
}
public int getField()
{
    return field;
}

1 个答案:

答案 0 :(得分:1)

防止直接访问字段不仅是一种更好的设计,这是有争议的,而且框架在某些事情上更喜欢字段(以及某些情况下的方法)的属性。

其中一个是数据绑定。您不能将数据绑定到字段,也不能绑定到属性。此外,它允许您设置访问修饰符以允许读取,但不能编写属性,例如。

属性也比Java样式属性更容易编写。最后代码是相同的(因为属性最终成为方法),但对于你作为编码器,它更容易。