2013-07-13 45 views
2

我在另一个获取有关电池信息的类文件中有一个函数。在一个表单中,我有以下代码:在if语句中使用函数是不好的做法吗?

If BatteryClass.getStatus_Battery_Charging = True Then 

它出现在Visual Studio接受这个。然而,它会更好,如果我用下面的代码,这也可以工作:

dim val as boolean = BatteryClass.getStatus_Battery_Charging 
If val = True Then 

是否有这两种方法之间的差异?

回答

4

你问的一般是哪种方法是习惯用法。

技术规则不是多次调用一个方法 - 除非您专门检查变化的易失性值 - 当其结果可以保存在本地作用域变量中时。这不是你所要求的,但重要的是要明白,多次调用通常应该绑定到一个变量。

这就是说,从维护的角度来看,它更好地生成更少的代码行,只要这样做可以提高代码的可读性。如果您必须声明一个本地作用域变量来保存方法的返回值,请确保为该变量指定一个有意义的名称。

更喜欢这样的[惯用VB.NET]一个班轮:

If BatteryClass.getStatus_Battery_Charging Then 

在这个:

Dim isBatteryCharging As Boolean = BatteryClass.getStatus_Battery_Charging 
If isBatteryCharging Then 

你应该关心自己用的方法,它被调用时还有一点,创建一个副作用影响你程序的状态。在大多数情况下,不希望有副作用导致方法被调用多次 - 如果可能的话,重写这样的副作用影响方法,以免它们引起任何副作用。要限制发生副作用的次数,请使用相同的局部变量作用域规则,而不是执行方法的多次调用。

4

没有真正的区别。

如果您再次需要价值,第二种效果会更好。当您将值存储在变量中时,调试也稍微容易一些。

我个人倾向于使用第一个,因为我是一位老校C程序员!

相关问题