用.net框架和C#语言已经2年多了,现在从头看自己以前写的代码,真是太对不起自己的机器了(好多冗余,危险的代码),所以最近读了一些提高C#代码效率的书(EffectiveC#)(这里所说的效率并不单单指程序运行的速度,而是速度与稳定性、安全性的综合考虑),总结归纳出一个学习笔记,希望大大门多加指点。
一、对于C#的类来说,尽可能使用属性,而不是成员
这条是对于很多的初学者来说的,在学习完类的时候,很多的初学者(包括当初的我在内)都迫不及待的使用成员和方法来定义自己抽象出来的类。不过那个时候觉得用属性比较麻烦,就直接用类中的成员来存储值。对于字段来说属性有很多的优势:
1. .NET框架更好的支持属性。简单来说,你可以定义一个Person类的_name字段为string类型,但是你可以定义Name属性只能是英文的。同样,你也可以对属性的值进行安全的限定(例如不能为空);
2.数据成员不能抽象,属性可以是抽象的,兼容性和可扩展性更强。
3.接口里面不能包含数据成员怎么办?用属性来代替吧!