更多的变量以获得更易读的IF /条件?

时间:2018-10-05 16:46:54

标签: c# variables if-statement readability

问题:拥有更多变量以使条件“更具可读性”会更好吗?拥有更少变量但难于阅读条件的条件是否更干净?

我读到这说较少的变量。我认为他们的解决方案看起来不太容易理解(https://techbeacon.com/why-unnecessary-variables-are-bad-your-code) 这样听起来有点不同:Introducing variables only for readability?

示例:

我有以下声明:

if ((memberIDandLNIsValid) || (memberIDandDOBIsValid && memberDOBFormatIsValid))

要获得我的会员ID和LNIsValid,

if (!string.IsNullOrEmpty(Search_MemberID) && !string.IsNullOrEmpty(Search_MemberLastName))

请注意,Search_MemberID和Search_MemberLastName是两个单独的变量。我认为拥有组合变量更容易阅读。 但是我被告知代码中变量太多。

我猜测解决方案是将其保留为:

if( (Search_MemberID && Search_MemberLastName) || ((Search_MemberID && Search_DOB) && memberDOBFormatIsValid) )

对我来说,此条件现在的可读性大大降低了。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我认为这样很好,但是您可以使用的一种技术是将布尔值重构为名称更易读的方法。

(Search_MemberID && Search_MemberLastName)|| ((Search_MemberID && Search_DOB)

成为:

SearchMemberHasIdAndLastName() || SearchMemberHasIdAndDOB()

您无需在此处执行此操作,但这是一种使您牢记于心的技术。