2013-07-13 114 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程序員!

相關問題