学习笔记之--属性、字段、变量
万变不离其宗:掌握最根本的才是掌握最精髓的。
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访问器,所传递的自变量将提供新值。