欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

始终使用属性(Property),而不是字段(Data Member)

程序员文章站 2022-03-17 09:57:01
1、始终使用属性(Property),而不是字段(Data Member) C# 属性已经晋升为一等公民,如果你的类中还有public的字段,Stop。访问属性和字段的方式是一样的,但是属性是用方法(methods)实现的。 当有新的需求,通过修改属性来实现比在程序里面修改所有的public字段来实 ......

1、始终使用属性(Property),而不是字段(Data Member)

  C# 属性已经晋升为一等公民,如果你的类中还有public的字段,Stop。访问属性和字段的方式是一样的,但是属性是用方法(methods)实现的。

当有新的需求,通过修改属性来实现比在程序里面修改所有的public字段来实现需求,容易太多。

因为属性是方法实现的,所以属性拥有方法所拥有的一切,可以定位为virtual:,可以扩展为 abstract,和 interface 的一部分,还可以定义不同的访问级别,来更好的控制类的成员的访问

  比如定义了一个类 customer,你发现没有检查 customer 姓名不能为空。如果使用了属性可以很容易的添加查询姓名不能为空。如下:

 public class customer
    {
        public int customerId { get; set; }

        private string _customerName;
        public string customerName
        {
            get
            {
                return _customerName;
            }
            set
            {
                if ((value == null) || (value.Length == 0))
                {
                    throw new ArgumentException("客户名称不能为空", "customerName");
                }
                _customerName = value;
            }
        }

   

  比如要实现同步访问,可以:

 public class customer
    {
        private int _customerId;
        public int customerId
        {
            get
            {
                lock (this)
                {
                    return _customerId;
                }
            }
            set
            {
                lock (this)
                {
                    _customerId = value;
                }
            }
        }
}

    总结:使用属性对于需求变化有更强的适应性,更方便的修改实现方法。