我正在考虑两个代码。
哪一个是更正确的返回布尔值的方法,为什么?我将在MVC视图中使用此函数。
Function MultiplicativeIsEffective(ByVal p As someobjectpassed) As Boolean
'1st:
Return Convert.ToBoolean(If(p.EffectiveDate > CDate("04/02/2015"), True, False))
'2nd:
Return policy.Endorsement.EffectiveDate > CDate("04/02/2015")
End Function
答案 0 :(得分:3)
它们在语法上都是正确的,但最底层的是可读性更高,避免了不必要的工作。上层版本将布尔值(p.EffectiveDate > CDate("04/02/2015")
)转换为布尔值(True
语句中的False
或If
)到布尔值(Convert.ToBoolean
)。额外的工作毫无意义。
答案 1 :(得分:3)
它们都是正确的,因为它们返回正确的布尔值。
第一个就是裁员。
p.EffectiveDate > CDate("04/02/2015")
产生一个布尔值。以下内容不会添加任何值,因为它只是查看一个布尔值,然后返回该布尔值。所以这没有做任何事情。
If(p.EffectiveDate > CDate("04/02/2015"), True, False)
最后以下是取一个布尔值,然后将其转换为布尔值,实际上没有做任何事情。
Convert.ToBoolean(If(p.EffectiveDate > CDate("04/02/2015"), True, False))
所以第一个是做一个导致布尔值的测试,然后你把布尔值转换成一个布尔值。
你想使用第二个。