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

xiaoxiao2021-02-28  51

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

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

我个人的理解是

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

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

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

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

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

转载请注明原文地址: https://www.6miu.com/read-2623122.html

最新回复(0)