以下哪项更易读,更可取?
这是在声明中指定默认值的地方:
Dim isLastWeekOfPeriod As Boolean = False
If periodInfo.WeekCount = weekInfo.Week Then
isLastWeekOfPeriod = True
End If
或者,这个值在else子句中设置:
Dim isLastWeekOfPeriod As Boolean
If periodInfo.WeekCount = weekInfo.Week Then
isLastWeekOfPeriod = True
Else
isLastWeekOfPeriod = False
End If
答案 0 :(得分:5)
直接在初始化中写下作业,不要在这里使用If
:
Dim isLastWeekOfPeriod As Boolean = (periodInfo.WeekCount = weekInfo.Week)
括号不是必需的,但使得赋值与比较更具可读性。顺便说一下,使用Option Infer On
你也可以安全地删除类型名称,从初始化表达式和变量名前缀is
可以看出这一点:
Dim isLastWeekOfPeriod = (periodInfo.WeekCount = weekInfo.Week)
记住:短暂是好的(只要它不会对可读性产生负面影响)。
您的第一个代码是可以接受的,但它与我上面的代码大致相同,并且代码行数增加了四倍,没有任何任何好处。
第二个代码初始化两次:一次在声明中,因为每个变量都在VB中默认初始化(因此isLastWeekOfPeriod
取值False
第一行)。并且在那之后的条件块中。哦,最后这段代码是我的五倍。
此外,写If a Then result = True Else result = False
总是做多余的工作。没有理由不直接写result = a
。