属性vs字段的关系

时间:2021-03-26 14:53:03

字段与属性都是类的成员。 
字段是数据成员,是隶属于类的变量。 
属性是函数成员,它不为数据存储分配内存,它执行代码。

1、字段

a.字段又称为:“成员变量”,一般在类的内部做数据交互使用

b.字段命名规范:camel命名法(首单词字母小写)。

理解:私有化:字段就好比我们的个人财产,仅供个人使用,所以一般是private修饰。

2、属性

作用:在面向对象设计中主要使用属性描述对象的静态特征。

要求:一般采用Pascal命名法(首字母大写),数据类型要和对应的字段要一致。

理解:属性其实就是外界访问私有字段的入口,属性本身不保存任何数据,在对属性赋值和读取的时候其实就是操作的对应私有字段。

属性本质其实就是一个方法,通过get和set方法来操作对应的字段,通过反编译工具我们可以看出

属性vs字段的关系

3、代码实例

 class Test
    {
        private int myValue; //分配内存
        public int MyValue // 不分配内存
        {
          //get访问器必须包含return语句,返回字段‘myValue’
            get 
             { 
               return myValue;//读取
             }
            set //set访问器接受它的输入参数--value,并巴它赋给字段,value是隐式参数。
            {
                myValue = value;//赋值
            }
        }
    }
     class Program
    {
        static void Main(string[] args)
        {
            Test c = new Test();
            Console.WriteLine("myValue:{0}", c.MyValue);//把属性看做一个字段,从中读取它的值(读)。
            c.MyValue = 20; //通过set访问器赋值(写)。
            Console.WriteLine("realValue:{0}", c.MyValue);
            Console.Read();
        }
    }