zoukankan      html  css  js  c++  java
  • 始终使用属性(Property),而不是字段(Data Member)

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

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

  • 相关阅读:
    Tensorflow2.0学习(3)---基础
    Tensorflow2.0学习(2)---线性回归和分类
    Tensorflow2.0学习(1)---简介
    人工智能、机器学习、深度学习区别
    window10安装tensorflow2
    conda创建虚拟环境报错
    ubuntu18的firefox安装flash插件
    Shell学习(1)---脚本入门
    检测服务器端口是否被封(墙)
    git 查看远程仓库地址
  • 原文地址:https://www.cnblogs.com/tangchun/p/9110690.html
Copyright © 2011-2022 走看看