我刚看完YouTube上的Google清洁代码视频(请参阅链接,第一篇文章),关于if
从代码中删除语句并使用多态.
观看视频后,我看了一下我在观看视频之前编写的一些代码,并注意到我可以使用这种方法的地方,主要是多次实现相同类型逻辑的地方.举个例子:
我有一些像这样的代码.
public int Number { get { string returnValue; if (this.internalTableNumber == null) returnValue = this.RunTableInfoCommand(internalTableName, TableInfoEnum.TAB_INFO_NUM); else returnValue = this.RunTableInfoCommand(internalTableNumber.Value, TableInfoEnum.TAB_INFO_NUM); return Convert.ToInt32(returnValue); } }
RunTableInfoCommand的作用并不重要,但主要的是我有许多具有完全相同的属性的属性,if
唯一改变的是TableInfoEnum.
我想知道是否有人可以帮助我重构这一点,以便它仍然做同样的事情但没有任何if
陈述?
在看到其中一些(技术上正确的)响应后,这里只是一个注意事项,只是摆脱一个If语句不应该是你唯一的目标,目标应该是使你的代码可扩展,可维护和简单,如果这意味着摆脱一个if语句,很棒,但它本身不应该是一个目标.
在您提供的代码示例中,并且在不了解有关您的应用程序的更多信息的情况下,假设您不会延长过去测试的空值,我认为If(或者甚至是三元)是更易于维护的解决方案坦率地说.