第六章类(六)属性2命名规范

  只记录回忆点

  自动实现的属性

  从C#3.0起属性语法有了简化版本。

  在属性中声明支持字段,并用取值方法和赋值方法来获取和设置该字段。由于这是十分常见的设计,而且代码比较琐碎;

  所以,现在允许在声明属性时不添加取值或赋值方法,也不声明任何支持字段。

  一切都自动实现。简化了写法,也使代码更易读。

  此外,如未来需添加一些额外的代码,比如要在赋值方法中进行验证,那么虽然要修改现在的属性声明来包含实现,但调用它们的代码不必进行任何修改。

  属性和字段的设计规范

  一般原则是方法代表行动,而属性代表数据。

  避免从属性取值方法抛出异常;

  要在属性抛出异常时保留原始属性值;

  如果不需要额外逻辑,要优先使用自动实现的属性,而不是属性加简单支持字段;

  无论私有字段使用哪一种命名方案,属性都要使用PascalCase大小写规范;

  考虑为支持字段和属性使用相同的大小写风格,为支持字段附加“-”前缀;

  如果有意义的话,要为Boolean属性附加“Is”“Can”或“Has”前缀;

  不要声明public或protected实例字段;

原文地址:https://www.cnblogs.com/158-186/p/11981197.html

时间: 2025-01-09 11:11:03

第六章类(六)属性2命名规范的相关文章

第六章类(七)属性3提供属性验证、只读和只写属性、取值和赋值方法的访问修饰符

只记录回忆点 如果为LastName赋了无效的值,代码就会抛出异常.拦截赋值,并通过字段风格的API对参数进行验证,这是属性的优点之一. 一个好的实践是从属性的实现中访问属性的支持字段.换言之,要一直使用属性,不要直接调用字段. 可移除属性的取值方法或赋值方法来改变属性的可访问性. 只有赋值方法的属性是只写属性,这种情况较罕见.C#6.0开始支持只读自动实现的属性. 设计规范 如果属性值不变,要创建只读属性: 不要提供只写属性,也不要让赋值方法的可访问性比取值方法更宽松: 原文地址:https:

第六章 类文件结构

这章涉及记忆性的东西太多. 下面简要讲一下一些主要的内容,关于属性表的内容则省略,虽然貌似也挺重要,但是这方面的知识点太多. 如图所示Class类文件的结构按照从上往下排序依次也对应着class二进制文件里的顺序. 下面则是书上内容的一些摘要: 6.1 Class文件 Class文件是一组以8字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件中,中间没有添加任何分隔符若遇到需要占用8字节以上空间的数据时,则会按照高位在前的方式分割成若干组8位字节进行存储. Class文

第六章 类

类 介绍 传统的JavaScript程序使用函数和基于原型的继承来创建可重用的组件,但对于熟悉使用面向对象方式的程序员来讲就有些棘手,因为他们用的是基于类的继承并且对象是由类构建出来的. 从ECMAScript 2015,也就是ECMAScript 6开始,JavaScript程序员将能够使用基于类的面向对象的方式. 使用TypeScript,我们允许开发者现在就使用这些特性,并且编译后的JavaScript可以在所有主流浏览器和平台上运行,而不需要等到下个JavaScript版本 类 clas

第六章 类文件结构(读深入理解jvm虚拟机,随记)

6.2  无关性的基石 标题为什么是无关性基石呢.时至今日,商业机构和开源机构已经在java语言之外发展出一大批在java虚拟机上运行的语言.如Clojure,Groovy,Scala等. java虚拟机不和包括java在内的任何语言绑定,它只与“Class文件”这种特定的二进制文件格式有所关联.  java程序(*.java)------>javac编译器------>字节码文件----->java虚拟机. 6.3  Class类文件的结构 如果想比较深入的了解虚拟机,那么这部分是不能

高程第六章--面向对象程序设计--属性类型

ES有两种属性类型:数据属性和访问器属性. 一.数据属性4个描述其行为的特性. 1:[[Configurable]]:表示能否通过delete删除属性从而重新定义属性. 2: [[Enumerable]]:表示能否通过for-in循环返回属性 3: [[Writable]]:表示能否修改属性的值 4:[[Value]]:包含这个属性的属性值 要修改属性默认的特性,必须使用ES5的defineProperty()方法 //"use strict"; var person = {}; Ob

第六章类(三)实例字段

只记录回忆点 面向对象设计的一个核心部分是分组数据来建立特定结构. 在面向对象术语中,在类中存储数据的变量称为成员变量.这个术语在C#中很好理解,但更标准.更符合规范的术语是字段,它是与包容类型关联的具名存储单元. 实例字段是在类的级别上声明的变量,用于存储与对象关联的数据. 声明实例字段 访问实例字段 原文地址:https://www.cnblogs.com/158-186/p/11976965.html

第六章类(十九)readonly

readonly英文译义是只读属性,在上篇与const的对比,是说 1 在运行时为readonly字段赋值的,看到编译出来的CIL代码中readonly字段还是变量. 同样是字段(面对对象的术语),const修饰是常量的意思,那么,又为何有readonly的出现呢? 难道就是因为它是在运行时赋值的嘛? 我们在之前的文字中理解过const从意思上讲是常量的意思,就是要描述不随着时间推移发生变化的事物. 2 readonly就是只读的意思,另外它只能在构造函数中赋值或者声明时给它赋值,所以它是只能只

翻译经典之《Cisco Lan Switching》第六章(六):Five STP States

[版权声明:原创翻译文章,翻译水平有限,错误在所难免,翻译作者对文章中存在的错误或遗漏所造成后果不承担任何责任,请谨慎转载.转载请保留本声明及出处:blog.csdn.net/shallnet ,下载该书英文版] 在网桥将其端口角色按根端口.指定端口.非指定端口分类之后,创建无环的拓扑就简单明了了:根端口和指定端口转发数据流量,非指定端口阻塞数据流量.虽然在一个稳定的网络中转发和阻塞是仅有的两种使用到的状态,但表6-3列出了STP实际上的五中状态. Table 6-3. STP States S

C#1(.net和C#的关系、VS与.net的对应关系、VS2012常用的几种应用程序、C#定义一个类的方法、类页面内容的解释、定义Person的类、调用Person类的方法、命名规范、数值类型)

1..net和C#的关系 .net是一个开发平台,C#是应用在.net平台上的一种语言.   2.VS与.net的对应关系  3.VS2012常用的几种应用程序 第一种是Windows窗体应用程序,也即是我们常用的C/S端的应用软件: 第二种是控制台应用程序,主要是用来学习调试C#代码的(老师上课应用的模式): 第三种是空Web应用程序,建立空的网页模式,B/S模式: 第四种是Web 窗体应用程序,建立后会生成一些常用的网页组件和功能,例如JS.image等,也是B/S模式. 4.C#定义一个类