C#关于面向对象“属性”的说明,以及属性的实际计算过程说明

为什么要引入属性的概念?

属性更多的人把它解读为“访问器”

我个人的理解是

在创建类的时候,不方便直接对类里面的字段做限制,例如值变量的取值范围,字段变量的备选等。

那么通过添加对访问器的条件或者限制,就可以达到在为对象参数具体赋值的时候,进行进一步的限制,保护。

例如常规的属性应用(我捎带脚,顺便把构造函数也使用了)

namespace ConsoleApp2 
{ 
    class Pro 
    { 
        static void Main(string [] args)
        { 
            Man zhichao = new Man(32); 
            zhichao.Print(); 
        }         
    } 

    类曼
    { 
        公共曼(INT年龄)//创建构造函数
        { 
            this.Age =年龄; 
        } 

        private int _age; 

        public int Age 
        { 
            get 
            { 
                Console.WriteLine(“完成年龄赋值”); 
                return _age * 3; 
            } 
            set 
            {
                _age = value  -  2; 
                Console.WriteLine(“_age取值”); 

            } 
        } 

        公共无效打印()
        { 
            Console.WriteLine(“我今年{0}”,年龄); 
            Console.ReadKey(); 
        } 
    } 
}

执行函数,得到的结果为:
_age取值
完成时代赋值
我今年90

那么很明显,属性(访问器)的执行过程,就是

1,先把对象.Age的值通过set赋给了_age,即使_age取到值;

        在这个过程当中,可以加条件判断,也可以进行数学运算

        这里我做了运算 - ,把获取到的对象zhichao的_age-2

2,把_age的值,通过get返回给Age,即而使Age被重新赋值

        在这个过程当中,可以加条件判断,也可以进行数学运算

        在这里我做了运算*把前面_age-2后的值,进行了* 3

3,最终年龄的值已经不是初始化时候的32,而经过访问器后,变成了(32-2)* 3 = 90


以上就是我在学习到属性当中时,对于属性的概念理解,以及计算过程的推导,希望对于大家学习的过程当中也有所帮助,感谢大家浏览,欢迎关注【评论】


猜你喜欢

转载自blog.csdn.net/weixin_41340978/article/details/80953079
今日推荐