属性作为虚字段使用

把C#入门经典第四版的基础部分重打了遍后  我又拿起了上次刚看到类这章的c#本质论

 

 

属性和方法调用不允许作为ref或out参数值使用

      C#允许属性像字段那样使用,只是不允许将它们作为ref或our参数值来传递. ref和out参数值在内部实现时,需要将内存地址传给目标方法. 但是, 由于属性可能是没有支持字段的虚字段, 也有可能是只读/只写的,因此不可能传递其基础存储的地址. 所以, 不能将属性作为ref或out参数值来传递. 首先必须将值复制到一个变量中, 然后传递该变量. 方法调用结束之后, 再将变理的值赋回给属性.

 

 

Name属性的取值方法将FirstName和LastName属性返回的值连接到一起. 事实上,所赋的姓氏值并没有真正存储下来. 为Name属性赋值时,右侧的值会解析成它的名字和姓氏部分

感觉没啥注释好加的...很明了的代码

Code:
  1. class Employee  
  2.    {  
  3.        public string FirstName  
  4.        {  
  5.            get;  
  6.            set;  
  7.        }  
  8.   
  9.        public string LastName  
  10.        {  
  11.            get;  
  12.            set;  
  13.        }  
  14.   
  15.        //属性作为虚字段使用  
  16.        public string Name  
  17.        {  
  18.            get  
  19.            {  
  20.                return FirstName + " " + LastName;  
  21.            }  
  22.            set  
  23.            {  
  24.                string[] names;  
  25.                //以' '拆分 存入names数组  
  26.                names = value.Split(new char[] { ' ' });  
  27.                //判断数组长度  
  28.                if (names.Length == 2)  
  29.                {  
  30.                    FirstName = names[0];  
  31.                    LastName = names[1];  
  32.                }  
  33.                else  
  34.                {  
  35.                    throw new System.ArgumentException(  
  36.                        string.Format(  
  37.                        "Assigned value '{0}' is invalid", value));  
  38.                }  
  39.            }  
  40.   
  41.        }  
  42.   
  43.    }  

 

 

 

QQ群:45406906   

欢迎菜鸟及大神们加入

技术交流 学习经验

学生的群 大多都是菜鸟 不必拘束...只要相互尊重就可以了

你可能感兴趣的:(C#)