本文摘自PHP中文网,作者黄舟,侵删。
原则:尽可能控制对数据的修改,如果可以预测某个数据不会或不应该被改变,就要对其控制,而不要期望使用这个数据的调用者不会改变其值。如果参数在使用过程中被意外修改,将会带来不可预知的结果,而且这种错误很难被检查到,所以我们在设计方法参数的时候,要充分考虑传递引用类型参数或者引用方式传递引用类型参数可能带来的后果。
如果一个数据在传递过程中不能被改变,就要在构建这个对象的时候就使其值(字段或属性)不被改变。
一、对于简单的参数的控制
1、值类型参数传递
这种情况因为传递的是参数的副本,不影响原始值,不需要控制。
2、引用类型参数传递
a、由值类型组成的数据结构
需要将字段设置为只读,属性只有get。赋值只能通过构造方法进行。
b、包含引用类型字段的数据结构
这种情况是递归的,需要保证字段为readonly,属性为get的同时,引用类型字段所使用类型也满足该要求。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
二、对于复杂引用类型参数传递的控制
相关阅读 >>
unity c# getsavefilename()的实例详解
更多相关阅读请进入《csharp》频道 >>

C#高级编程(第11版) C# 7 & .NET Core 2.0(.NET开发经典名著)
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。