属性的主要用法(get,set)

时间:2010-08-26 09:06:57

标签: c#

大家好我们可以分配一个值或以其他方式返回一个值..所以有时我们通过属性(get,set)来做..任何人都可以告诉我属性的主要用途..

感谢 SAJ

4 个答案:

答案 0 :(得分:5)

属性提供了获取和设置状态的抽象。即它们允许您定义实际上下文中获取和设置的含义。如何在setter上使用它的一个常见示例是在状态发生变化时通知订阅者。如果公开公共字段,则无法执行此操作。

答案 1 :(得分:3)

属性封装内部逻辑。它们是公共接口,允许您检查值,应用规则并允许更改内部实现。

这与直接暴露内部构件形成对比。

例如:

public int myField; // exposes implementation - BAD BAD BAD

更好地实施:

private int myField;
public int MyField
{
   get {return myField;}
   set {myField = value;}
}

您现在可以更改内部myField,而不会影响课程外的其他代码。您可以将逻辑添加到setter,getter等等。

如果您没有与成员访问权限关联的任何逻辑,则可以使用自动属性:

public int MyField {get; set;}

编译器将自动生成支持字段。

答案 2 :(得分:0)

除了封装的优点之外,我们更喜欢在许多其他方式中使用带有get和set访问器的属性,因为它们提供了清晰实用的语法。

语法:

public int Field{ get; set; }

比这更明确:

private int field;
public int GetField(){
     return field;
}
public void SetField(int field){
     this.field = field;
}

答案 3 :(得分:0)

我只想说在私有字段上使用getter和setter,可以让您更好地控制这些字段。您可能希望仅允许授权实体访问该变量..因此您可以检查getField方法。您可能希望仅允许读取值而不更新它们,那么您只能拥有getter而不能使用setter。所以基本上使用暴露私有字段的方法,你可以更好地控制它们。