return 从 VB.NET 中的函数获取布尔值的最佳方法是什么?

Whats the best way to return a boolean from a function in VB.NET?

我正在考虑两个代码。

哪一个是 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

它们在语法上都是正确的,但底部的可读性要好得多,并且避免了不必要的工作。上层版本将布尔值 (p.EffectiveDate > CDate("04/02/2015")) 转换为布尔值 (If 语句中的 TrueFalse) 转换为布尔值 (Convert.ToBoolean)。额外的工作毫无意义。

它们都是正确的,因为它们 return 是正确的布尔值。

第一个只是有冗余。

p.EffectiveDate > CDate("04/02/2015")

结果为布尔值。以下不添加任何值,因为它所做的只是查看一个布尔值,然后 return 该布尔值。所以这没有做任何事情。

If(p.EffectiveDate > CDate("04/02/2015"), True, False)

最后下面是取一个boolean值然后转成boolean值,其实并没有做任何事情

Convert.ToBoolean(If(p.EffectiveDate > CDate("04/02/2015"), True, False))

所以第一个是做一个测试,结果是一个布尔值,然后你两次将该布尔值转换成一个布尔值。

您想使用第二个。