属性不能使用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];
                }
            }
        }
    }

posted on 2012-11-18 01:50  Scarface  阅读(694)  评论(0编辑  收藏  举报

导航