c#属性

属性实际上就是字段的一个封装,是为了字段的一个安全性和灵活性做出的一个扩展。

属性具有两个访问器,一个是读访问器get,一个是set,get是用于获取属性的值,而set是来重写。属性可以对数据的范围等做出限定,相对比字段灵活一些,如在现实中,很多要定义的字段都有自身的一个含义约束,例如,对于年龄字段,肯定他的值不可能为负数,对于性别字段,一般情况下只有男跟女两种情况(除特殊情况),那么在给这些字段赋值的时候就需要对所付的值进行一个范围或者真确性进行判断,但是字段本身没有这种能力,这时候就可以使用属性。

看以下年龄例子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace dele
{
    class test
    {
        private int age;
        public int Age
        {
            get { return age; }
            set
            {
                if (value > 0)
                { age = value; }
                else
                {
                    Console.WriteLine("年龄必须是正整数");
                }

            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            test zhang = new test();
            zhang.Age = -110;
            Console.WriteLine(zhang.Age);
            Console.Read();
        }
    }
}
这样可在set代码块中进行条件的筛选,范围的限定等操作,使得数据比较严谨,如果是赋值是负数,那么将不会成功。
当然,也可以用方法来完成这样的判断,自定义一个方法对私有字段进行读取和赋值操作,但个人觉得使用属性相对比较直观一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值