C#中字段和属性两者之间的区别以及属性的作用

C#中字段和属性两者之间的区别以及属性的作用

字段是占用内存的而属性则不会占用内存

咋们先一起看一下代码,进行对比.

//成员变量
        //属性
        public int no;
        //字段
        private int nl;
        //属性封装
        public int Nl 
        { 
          //获取/读取字段的值
            get => nl;//属性读取
            set
            {
                if (value >= 10 && value <= 20)//限制
                    nl = value;//属性赋值
                else
                {
                    Console.WriteLine("请输入10到20之间的数字!");
                }
            }
            
        }

上面这段代码中字段和属性的访问修饰符不同,属性是public: 公共的,而字段是private: 私有的.

访问修饰符

字段和属性都有访问修饰符

作用:

1,设定访问权限
2,限制类中的成员(属性、方法等)可访问的范围
3,访问范围通常有,类的内部、类的外部。

常用类型:

private(私有的,仅类的内部使用);public(公有的,没有访问限制)等等

小结;

类的成员在定义时,没有写出访问修饰符,则默认是private。
对应到字段和属性中,通常字段修饰为private,属性修饰为public。

一,字段

1,字段又称为:“成员变量”,一般在类的内部做数据交互使用。
2,字段命名规范:camel命名法(首单词字母小写)。

(1),字段主要是为类的内部做数据交互使用,字段一般是private。
 (2),字段可读可写。
 (3),当字段需要为外部提供数据的时候,请将字段封装为属性,而不是使用公有字段(public修饰符),这是面向对象思想所提倡的。

二,属性

1,在面向对象设计中主要使用属性描述对象的静态特征。
2,Pascal命名法(首字母大写),数据类型要和对应的字段要一致。

总结:

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

属性的作用

1,避免出现非法数据

通过属性的set方法加入判断逻辑,从而排除这种非法数据。
(set中加入了if条件判断
)

2,限定属性只读或者只写

例如有些属性为了保护数据,根据需要,屏蔽set或get方法达到只读和只写。

3,没有对应私有字段的属性,

4,属性一般是向外提供数据,主要用来描述对象的静态特征,所以,属性一般是public。

5,属性具备get和set方法,可以在方法里加入逻辑处理数据,灵活拓展使用。

6,属性的作用是对字母进行赋值时加以限制,

例如;

最开始代码中对int写了两个,而属性则对输入的数字进行了限制,其值只能在10到20之间才可以赋值成功

下面我们再来看看调用代码

//访问lei中的成员变量
//就要先进行实例化对象(具体化)
//new关键字后面lei方法就是该类对象对应的构造函数
//实例化对象名称前面呢个lei表示是这个类名称
Lei lei = new Lei();
//我们给属性值限制输入为10到20以后,
//当我们输入的数值不在范围里面,那么最后控制台里输出为0
//如果输入的数值在范围当中的话,那么就照常输出
lei.Nl = 15;
//下面no是给lei中的字段进行赋值
lei.no = 13;
Console.WriteLine(lei.no);
Console.WriteLine(lei.Nl);            
Console.ReadKey();

猜你喜欢

转载自blog.csdn.net/XVJINHUA954/article/details/106558279