我在另一个类文件中有一个函数,该函数获取有关电池的信息。在形式上,我有以下代码:

If BatteryClass.getStatus_Battery_Charging = True Then

看来Visual Studio接受了这一点。但是,如果我使用下面的代码也可以更好:
dim val as boolean = BatteryClass.getStatus_Battery_Charging
If val = True Then

这两种方法之间有区别吗?

最佳答案

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

技术规则是不要多次调用一个方法-除非您专门检查 Volatile 值以进行更改-当其结果可以保存在局部范围的变量中时。这不是您要问的,但重要的是要理解多个调用通常应绑定(bind)到一个变量。

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

更喜欢这种[惯用的VB.NET]衬纸:

If BatteryClass.getStatus_Battery_Charging Then

在此:
Dim isBatteryCharging As Boolean = BatteryClass.getStatus_Battery_Charging
If isBatteryCharging Then

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

10-08 13:33