属性不能使用ref和out参数

本文介绍了C#中属性的使用方式及其限制,特别是无法作为ref和out参数的原因。通过实例展示了如何定义属性,并实现类似字段的功能,同时保持封装性和灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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];
                }
            }
        }
    }

转载于:https://www.cnblogs.com/Scarface/archive/2012/11/18/2775539.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值