静态或不静态

Sib*_*Guy 1 c# static-methods instance-methods

我真的很喜欢使用静态方法(特别是对于helpers类).但是由于静态方法不是顽固的,最终它们是一种不好的做法,不是吗?所以我必须在静态方法使用方便性和可测试性之间做出选择.有任何妥协吗?

Max*_*xem 9

这取决于静态方法的作用.

它真的必须是可靠的吗?像数据访问,长时间运行操作等,或者你的意思是帮助方法,如.ToSlug()?

如果是前一种情况,我会将它们作为实例方法来提高测试的可测试性/速度.

如果是后者,我会让它们保持静止,只是验证它们的正确性.