在if语句中使用函数是不好的做法吗?

时间:2013-07-13 04:23:12

标签: vb.net function if-statement

我在另一个类文件中有一个函数可以获取有关电池的信息。在表单中,我有以下代码:

If BatteryClass.getStatus_Battery_Charging = True Then

Visual Studio似乎接受了这一点。但是,如果我使用以下代码也会更好,这也适用:

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

这两种方法有区别吗?

2 个答案:

答案 0 :(得分:4)

没有真正的区别。

如果您当然需要再次获得该值,则第二个更好。当您将值存储在变量中时,调试也会稍微容易一些。

就个人而言,我倾向于使用第一个,因为我是一名老学校的C程序员!

答案 1 :(得分:4)

您通常会问的是哪种方法是惯用的。

技术规则不是多次调用方法 - 除非您专门检查变量的volatile值 - 当其结果可以保存在本地范围的变量中时。这不是你要求的,但重要的是理解多个调用通常应绑定到变量。

据说,只要这样做可以提高代码的可读性,就可以更好地从维护角度生成更少的代码行。如果必须声明一个本地范围的变量来保存方法的返回值,请确保为变量赋予一个有意义的名称。

首选[惯用VB.NET]一个班轮:

If BatteryClass.getStatus_Battery_Charging Then

对此:

Dim isBatteryCharging As Boolean = BatteryClass.getStatus_Battery_Charging
If isBatteryCharging Then

您应该关注的另一点是方法,在调用时,会产生影响程序状态的副作用。在大多数情况下,不希望多次调用引起副作用的方法 - 在可能的情况下重写这样的副作用方法,以便它们不会引起任何副作用。要限制副作用发生的次数,请使用相同的局部变量作用域规则,而不是执行方法的多次调用。