博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
始终使用属性(Property),而不是字段(Data Member)
阅读量:5162 次
发布时间:2019-06-13

本文共 1312 字,大约阅读时间需要 4 分钟。

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

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

 

转载于:https://www.cnblogs.com/tangchun/p/9110690.html

你可能感兴趣的文章
Program exited with code **** 相关解释
查看>>
植物大战僵尸中文年度版
查看>>
26、linux 几个C函数,nanosleep,lstat,unlink
查看>>
投标项目的脚本练习2
查看>>
201521123107 《Java程序设计》第9周学习总结
查看>>
Caroline--chochukmo
查看>>
iOS之文本属性Attributes的使用
查看>>
从.Net版本演变看String和StringBuilder性能之争
查看>>
Excel操作 Microsoft.Office.Interop.Excel.dll的使用
查看>>
解决Ubuntu下博通网卡驱动问题
查看>>
【bzoj2788】Festival
查看>>
执行gem install dryrun错误
查看>>
HTML5简单入门系列(四)
查看>>
实现字符串反转
查看>>
转载:《TypeScript 中文入门教程》 5、命名空间和模块
查看>>
苹果开发中常用英语单词
查看>>
[USACO 1.4.3]等差数列
查看>>
Shader Overview
查看>>
Reveal 配置与使用
查看>>
Java中反射的学习与理解(一)
查看>>