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

在VB.NET中,从函数返回布尔值的最佳方法是什么?,vb.net,function,boolean,return,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 polic

我有两个代码,我正在考虑

哪种方法更适合返回布尔值?为什么?我将在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

它们在语法上都是正确的,但最下面的一个更具可读性,避免了不必要的工作。更高版本将If语句中的布尔值p.EffectiveDate>CDate04/02/2015转换为布尔值True或False,再转换为布尔值Convert.ToBoolean。额外的工作是没有意义的。

它们都是正确的,因为它们返回了正确的布尔值

第一个只是有冗余

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))
最后,下面是获取一个布尔值,然后将其转换为一个布尔值,这实际上什么都不做

If(p.EffectiveDate > CDate("04/02/2015"), True, False)
Convert.ToBoolean(If(p.EffectiveDate > CDate("04/02/2015"), True, False))
第一个是做一个测试,得到一个布尔值,然后你两次把这个布尔值转换成布尔值


你想使用第二个。

侧方:考虑使用日期文字语法4/2/2015或更好的是,新的DATIEME2015,4, 2而不是转换字符串文字。要考虑的是:乘法是否有效地是某个对象通过的类本身的一部分?它也可以是只读属性而不是函数。谢谢您的明确解释。