属性不能使用ref和out参数
C#允许属性像字段那样使用属性,只是不允许将他们作为ref和out参数值来传递。ref和out在内部实现时,需要传递内存地址给目标方法。但是,由于属性可能是没有支持字段的需字段,也有可能是只读/只写的,因此不可能传递其基础存储的地址。
这里,Name就作为虚字段使用。
class Employee { private string _FirstName; public string FirstName { get { return _FirstName; } set { _FirstName = value; } } private string _LastName; private string LastName { get { return _LastName; } set { _LastName = value; } } public string Name { get { return FirstName + " " + LastName; } set { string[] names = value.Split(' '); if (names.Length == 2) { FirstName = names[0]; LastName = names[1]; } } } }