我一直在考慮一些代碼經歷和發現問題和事情,可以改善和改變(這是一門功課的任務,但這個問題是無關的任務本身),部分代碼是:爲什麼不在VB.NET中使用'Return'語句?
Function CheckIfSameCell(ByVal FirstCellPosition As CellReference, ByVal SecondCellPosition As CellReference) As Boolean
Dim InSameCell As Boolean
InSameCell = False
If FirstCellPosition.NoOfCellsSouth = SecondCellPosition.NoOfCellsSouth And FirstCellPosition.NoOfCellsEast = SecondCellPosition.NoOfCellsEast Then
InSameCell = True
End If
CheckIfSameCell = InSameCell
End Function
我不明白爲什麼InSameCell
是變量被創建的時候,它只能分配給函數名CheckIfSameCell
?
或者只是使用如下所示的return語句?
Function CheckIfSameCell(ByVal FirstCellPosition As CellReference, ByVal SecondCellPosition As CellReference) As Boolean
If FirstCellPosition.NoOfCellsSouth = SecondCellPosition.NoOfCellsSouth And FirstCellPosition.NoOfCellsEast = SecondCellPosition.NoOfCellsEast Then
Return True
End If
Return False
End Function
我能理解無法在If
語句直接返回的表達,以增加可讀性。我知道爲函數名稱賦值的返回值不會退出函數,而Return可以,但它只是一個人的風格,或者對第一個版本有任何優勢(IMO,第二個更多可讀)?
我認爲它只是個人選擇而不是規則,也有一些程序員遵循他們從書本或在線閱讀的模式。我也更喜歡第二個代碼(並且我以這種風格編寫我的代碼),它很容易閱讀並使用一個較少的變量。 –
你的建議是更好的和正確的方法,通過使用'return'而不是使用函數名稱。前面的函數可能已經寫在VB6中,然後轉換爲.Net,因爲VB6被編碼爲 –
當開關進行結構化編程時,一個規則是[每個函數應該有一個單一的出口點](http:///c2.com/cgi/wiki?SingleFunctionExitPoint)。從鏈接頁面引用,「現在,結構化編程已經贏得了很長時間,現在沒有人特別關心這個問題」。 – stakx