C#中,定义类(Class)的一些原则
1、定义类时,除非真的需要被其他类继承,否则都用标记sealed,编译器默认为非sealed;除非真的需要该accembly之外的类调用,否则都标记internal,除非特殊声明,编译器默认即为internal。
2、类中的属性(field),尽量定义为private,真的需要其继承类调用时,尽量声明为protected,internal或public来实现。
3、类中的方法(method)、属性(property)、事件(event),尽量声明为private,需要外部调用时,尽量用public。protected,internal是不推荐的,virtual是最不推荐的。
4、如果一个类过于复杂,则考虑将其拆分为几个类来实现。
(From 'CLR via C# : Chapter6: Type and Member Basics')