以下哪项更具可读性且更可取?
这里,在声明中分配默认值:
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
最佳答案
都不是。
初始化时直接写赋值,不要用If
完全在这里:
Dim isLastWeekOfPeriod As Boolean = (periodInfo.WeekCount = weekInfo.Week)
括号不是必需的,但可以使赋值与比较更具可读性。顺便说一下,与Option Infer On
您还可以安全地删除类型名称,从初始化表达式和变量名称前缀 is
可以明显看出:
Dim isLastWeekOfPeriod = (periodInfo.WeekCount = weekInfo.Week)
记住:简短就是好的(只要它不会对可读性产生负面影响)。
基本原理
您的第一个代码是可以接受的,但它与我上面的代码或多或少相同,并且代码行数是我的四倍,没有任何好处。
第二个代码进行初始化两次:一次在声明中,因为每个变量在 VB 中都隐式默认初始化(因此 isLastWeekOfPeriod
在第一行中采用值 False
) 。之后一旦进入条件 block 。哦,最后这个代码是我的五倍长。
此外,写If a Then result = True Else result = False
总是做多余的工作。没有理由不只写 result = a
直接。
关于vb.net - 声明 bool 值时分配默认值与使用 if 语句的两个子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9623443/