C#面向对象编程

时间:2021-08-29 17:21:43

规范:

1.不要在一个源代码文件中放置多个类。

2.要用所含公共类型的名称来命名源代码文件。

属性:

属性的关键特点在于,它提供了从变成角度看似于字段的api,但是事实上并不存在这样的字段。

自动实现的属性是为了满足现在不需要额外代码而将来或许需要进行额外的验证等操作的字段封装。

这样虽然属性的声明改变了,调用的代码却不需要做任何的更改。

 

在显式的赋值和取值方法与属性之间做取舍,一般的编码规范是方法应该代表行动,而属性用于代表数据。属性旨在简化对简单数据的访问。在编码中期望做到的是,调用属性的代价不应该比访问字段高出太多。

规范:

要使用属性简化对简单数据(进行少量计算)的访问。

避免从属性的取值方法中引发异常。

要在属性引发异常时保留原始属性值。

规范:

要使用名词、名词短语或形容词来明明属性。

考虑让属性和它的类型同名。

避免用camel大小写风格命名字段。

如果有用的话,要为布尔属性附加IS/Can/Has前缀。

不要声明public 或 protected的实例字段,而是通过属性来公开字段。

要用Pascal大小写风格命名属性

要优先使用自动实现的属性而不是字段。

如果没有额外的实现逻辑,要优先使用自动实现的属性,而不是自己编写完整版本。

作为良好的编程习惯,应该只在属性实现的内部访问属性的支持字段,要一直使用属性,不要直接调用字段。这样一来只要为属性添加了代码(如验证代码),整个类就可以马上利用这些代码

属性和方法调用不允许作为ref或out参数值使用。