C#类的字段和属性

1.概念:

字段:一般把类或结构中定义的变量和常量叫字段;

属性:属性不是字段,本质上是定义修改字段的方法。


2.字段的划分:

(1)静态字段:用修饰符static声明的字段。

不管包含该静态字段的类生成多少个对象或根本无对象,该字段都只有一个实例,静态字段不能被撤销。引用方法:

类名.静态字段名

(2)实例字段:类中定义的字段不使用修饰符static。

没创建该类的一个对象,在对象内创建一个该字段实例,创建它的对象被撤销,该字段对象也被撤销。引用方法:

实例名.实例字段名

(3)常量:用修饰符const声明的字段。

常量只能在声明中初始化,以后不能再修改。

类名.静态字段名

(4)只读字段:用修饰符readonly声明的字段。

只读字段是特殊的实例字段,它只能在字段声明中或构造函数中重新赋值,在其他地方都不能改变只读字段的值。

实例名.实例字段名

3.属性:

属性不是字段,但必然和类中的某个或者某些字段相联系,属性定义了得到和修改相联系的字段的方法。这样属性更加充分的体现了数据的封装性:不直接操作类的数据内容,而是通过访问器进行访问,借助于get和set方法对属性的值进行读写。

using System;
public class Person{
    private string name="张三";  //这是一个字段
    public string Name    //这是属性
    {
        get{
            return name;
        }
        set{
            name = value;  
        }
    }
}
public class Test{
    public static void Main(){
        Person OnePerson = new Person();
        OnePerson.Name = "李四";  //可见属性的使用方法与类中定义的实例字段一致;
    }
}
        

注意:(1)在属性定义中也可以只写set或者get访问器,这样就可以约束属性的值是只能读或者写的了;

           (2)虽然属性和字段的语法比较类似,但由于属性本质上是方法,因此不能属性当作变量那样使用,也不能把属性作为引用型参数或者输出参数来进行传递。

发布了138 篇原创文章 · 获赞 22 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/guihaiyuan123/article/details/83036778