学习笔记之--属性、字段、变量

来源:互联网 发布:淘宝虚拟产品怎么卖 编辑:程序博客网 时间:2024/06/04 17:41

万变不离其宗:掌握最根本的才是掌握最精髓的。

c#的字段就是指私有域(变量)

class A

{

    int i; 

    public int I

   {

      get{....}

      set{....}

   } 

其中,i是字段,I是属性,

字段是属于一个类的,在类中定义(注意:是类中,而不是类中的某个方法或属性中)

在本类中可以用this.字段名访问,且本类中的所有属性、方法等都可以访问,也就是说它的作用域是整个类。

而局部变量是属于一个函数或语句块的,它的作用域是从定义开始,到离开语句块。

一、域:表示与对象或类相关联的变量

在下面的代码中,类A包含了三个域:公有的X和Y,以及私有的z。

class A

{

public int x;

public string y;

private float z;

}

二、字段:是与对象或类相关联的变量(私有变量)。  

    当一个字段声明中含有static修饰符时,由该声明引入的字段为静态字段(static   field)。它只标识了一个存储位置。不管创建了多少个类实例,静态字段都只会有一个副本。  

    当一个字段声明中不含有static修饰符时,由该声明引入的字段为实例字段(instance   field)。类的每个实例都包含了该类的所有实例字段的一个单独副本。   

三、属性: 

    为了类的封装性,一般是把字段设为Private, 把属性设为公有来操作字段。 

    属性(property)是字段的自然扩展,两者都是具有关联类型的命名成员,而且访问字段和属性的语法是相同的。然而,属性与字段不同,不表示存储位置。相反,属性有访问器(accessor),这些访问器指定在它们的值被读取或写入时需执行的语句。

    属性的声明类似于字段,不同之处在于属性的声明以定界符{}之间的get访问器和/或set访问器结束,而不是分号。同时包含get访问器和set访问器的属性称为读写属性(read-write   property)。只具有get访问器的属性称为只读属性(read-only property)。只具有set访问器的属性称为只写属性(write-only property)。

    get访问器相当于一个具有属性类型返回值的无参数方法。除了作为赋值的目标外,当在表达式中引用属性时,会调用该属性的get访问器以计算该属性的值。

    set访问器相当于一个具有单个名为value的参数和无返回类型的方法。当一个属性作为赋值的目标,或者作为++或--运算符的操作数被引用时,就会调用set访问器,所传递的自变量将提供新值。