首页 > 代码库 > C#中的属性————只谈属性

C#中的属性————只谈属性

废话少说直接一剑封喉--属性是对私有字段的保护(其实是对私有字段引用的另外一种变相公开化),属性在没有任何操作的时候是无法看出其优势来,上例子

// Field used by property.
private int myInt;
// Property.
public int MyIntProp
 {
    get
          {
           return myInt;
           }
set
         {
            myInt = value;
          }
}

这个属性就是直接访问myInt,他是私有的如果外部访问的话得通过公共的属性public int MyIntProp,有人说了,为什么这么麻烦,回答有两部分;一:因为这个myInt是私有的,是这个类的,不想被别的类任意更改

二 当然你既然定义了这个字段,哪肯定是要被使用的,但是我们希望使用这个是有条件的,也就是不是谁都可以更改的。这时候就显现出来属性的强大来了,上例子,只上SET例子

set
{
if (value >= 0 && value <= 10)
myInt = value;
}

这个就是在属性中设置了限制,也就是属性的真正意义,

说在最后的,微软基于统一的考虑,所有的属性都是这么设置的,所以就有了myInt = value; 我自己的理解(纯粹自己瞎理解)这个属性也是方法的一部分,方法就是提供给外部使用的,只是他的名字叫属性罢了

C#中的属性————只谈属性