编写高质量代码改善C#程序的157个建议——建议146:只对外公布必要的操作
建议146:只对外公布必要的操作
那些没有必要公开的方法和属性要声明成private。如果需要公开的方法和属性超过9个,在VS默认的设置下,就需要滚屏才能显示在Intellisense中,如图:
SampleClass类:
class SampleClass { private int field1; private int field2; private int field3; public int MyProperty1 { get; set; } public int MyProperty2 { get; set; } public int MyProperty3 { get; set; } public int MyProperty4 { get; set; } public int MyProperty5 { get; set; } public int MyProperty6 { get; set; } public void Method1() { } public void Method2() { } public void Method3() { } }
如上图所示,Intellisence在可见范围内为我们提示的方法还包括了从Object继承过来的3个方法,在这个例子中实际真正能为我们显示的有价值的信息只有6条。
如果为SampleClass增加更多的公开属性或方法,意味着我们在使用Intellisence的时候增加了查找成本。
若我们打算将某个方法public或internal,请仔细考虑这种必要性。
除了类型成员外,类型也一样,应将不该对其他项目公开的类型设置成为internal,类型就应该只对本项目开发。
遵守这个规则,会使我们的API看上去清爽很多。
转自:《编写高质量代码改善C#程序的157个建议》陆敏技