建议92:谨慎将数组或集合作为属性
来源:互联网 发布:大众汽车维修软件 编辑:程序博客网 时间:2024/05/22 09:45
建议92:谨慎将数组或集合作为属性
数组或集合作为属性会引起这样一个问题:如果属性是只读的,我们通常会认为它是不可用改变的,但如果将只读属性应用于数座或集合,而元素的内容和数量却仍旧可以随意改变。如下所示:
static void Main(string[] args) { Company microsoft = new Company(); microsoft.Employees[0].Name = "LiMing"; foreach (var item in microsoft.Employees) { Console.WriteLine(item.Name); } Console.ReadKey(); } class Employee { public string Name { get; set; } } class Company { public Company() { Employees = new List<Employee>() { new Employee(){ Name = "Bill Gates"} }; } public IList<Employee> Employees { get; private set; } }
在上面的代码中,我们可以随意对Employees进行集合操作,它不改变的只是自身的引用而已。
如果某个类型含有集合概念的属性,那么他的可见性应该是private或protected,并且,它更应该是一个字段。类型对外只公开必要的方法来操作这个集合。
转自:《编写高质量代码改善C#程序的157个建议》陆敏技
0 0
- 建议92:谨慎将数组或集合作为属性
- 建议25:谨慎集合属性的可写操作
- 引用类型作为属性返回需谨慎
- 建议23:避免将List<T>作为自定义集合类的基类
- 建议97:优先考虑将基类型或接口作为参数传递
- 将char *类型作为map的key时要谨慎。
- C#利用lambda表达式将函数作为参数或属性跨类传递
- 集合或数组排序
- 将数组作为实参传递
- c# 将数组或集合 转换成以逗号分隔的字符串
- c# 将数组或集合 转换成以逗号分隔的字符串
- 建议7: 将0值作为枚举的默认值
- 建议7 将0值作为枚举的默认值
- 将数组作为函数的返回值
- 将数组作为参数进行传递
- 如何将二维数组作为函数参数
- C++---将二维数组作为参数
- c++将数组作为参数意味着什么?
- 解读官方Android MediaPlayer API(2)
- 关于DONA的一些理解与解读
- eclipse的代码自动填充补全功能
- iOS中UITextField使用详解
- ubuntu14系统:libgcc_s.so.1 must be installed for pthread_cancel to work
- 建议92:谨慎将数组或集合作为属性
- FZU Problem 2221 RunningMan(思维考查)——第六届福建省大学生程序设计竞赛-重现赛
- linux echo 颜色
- easyui-combobox下拉框异步级联选择
- java代码插入orcal数据库的某些字段为乱码如何如何处理
- LeetCode 53. Maximum Subarray
- 关于新版ADT创建项目时出现appcompat_v7的问题
- 利用Plupload解决大容量文件上传问题, 带进度条和背景遮罩层
- 关于DNS基本流程的理解