C#中属性、字段和成员变量的关系以及区别

C#中属性、字段和成员变量的关系以及区别

1、例子:

​ 1、我们先创建一个类叫Student(学生)

​ 2、字段为age(年龄)、name(姓名)、sex(性别)

​ 3、属性为:Age、Name、Sex。

​ 4、那么成员变量就是:age、name、sex、Age、Name、Sex

注意:字段和属性都可叫做是成员变量。属性和字段的功能都是用来存储数据,但他们肯定有不同的地方

 class Student
    {
        //定义私有的成员变量
        private int age;//年龄
        private string name;//姓名
        private string sex;//性别
        /// <summary>
        /// 获取或设置Student对象中Age年龄的值
        /// </summary>
        public int Age
        {
            get { return age; }//属性读取,获取age的值
            //value是关键字
            set { age = value; }//属性赋值
        }
        /// <summary>
        ///  获取或设置Student对象中Name年龄的值
        /// </summary>
        public string Name
        {
            get { return name; }//属性读取,获取name的值
            set { name = value; }//属性赋值,设置name的值
        }
   	    /// <summary>
        ///  获取或设置Student对象中Sex性别的值
        /// </summary>
        public string Sex
        {
            get { return sex; }
            set { sex = value; }
        }
    }

2、区别:

​ 字段一般会本类的内部使用,而属性则一般供外部的类访问。

​ 按照类的设计原则,字段都是被private(私有的)修饰过的,只能在本类中使用,如果说被public(公共的)修饰,那么他就可以被外部的类任意访问,如果说字段被无意的修改或者有意的破环,那么这就是我们很不希望看到的,所以说字段一般都是被private修饰

​ 属性相当于是给字段添加了一个保护层,如果想读取这个字段的值,属性里面就必须有get(获取),如果说是想给字段赋值,属性里边就一定是set(修改/设置/赋值)。

​ 如果说在get或set中增加一些限制或者说判断条件,验证要读取或赋值的内容,或者说让某个字段只读或只赋值,都可以实现。对于外部的使用者来说只能够使用这个属性而不能控制,如何控制操作就取决于类或者说我们的程序员。

注意:字段是有默认初值的,如果说没有设置属性中字段的值,只是获取,那么获取到的一定是默认初值。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

御弟謌謌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值