什么是从VB.NET中的函数返回布尔值的最佳方法?

时间:2015-01-30 18:33:30

标签: vb.net function boolean return

我正在考虑两个代码。

哪一个是更正确的返回布尔值的方法,为什么?我将在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

2 个答案:

答案 0 :(得分:3)

它们在语法上都是正确的,但最底层的是可读性更高,避免了不必要的工作。上层版本将布尔值(p.EffectiveDate > CDate("04/02/2015"))转换为布尔值(True语句中的FalseIf)到布尔值(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))

所以第一个是做一个导致布尔值的测试,然后你把布尔值转换成一个布尔值。

你想使用第二个。