Несколько возвратов против выхода для - PullRequest
0 голосов
/ 22 июля 2010

У меня есть следующий код VB.NET (но для каждого цикла есть в большинстве языков, таким образом, тег, не зависящий от языка):

  Public Function VerifyServiceName(ByRef sMachineName As String, ByRef sServiceName As String) As Boolean
    Dim asServices As System.ServiceProcess.ServiceController() = System.ServiceProcess.ServiceController.GetServices(sMachineName)
    Dim bVerified As Boolean = False
    For Each sService In asServices
      If sService.DisplayName = sServiceName Then bVerified = True
    Next
    Return bVerified
  End Function

Если у меня есть X количество сервисов для цикла, имое сервисное имя # 3.Лучше иметь несколько return операторов или exit for?Или есть более эффективный способ написания этой функции?

Я знаю, что разница во времени между циклом X и циклом 3 раза может быть незначительной для того, что я делаю, но у меня всегда есть работа на мозг.

Ответы [ 3 ]

1 голос
/ 22 июля 2010

Нашел больше обсуждения здесь по теме.Я думаю, что я не настолько опытен в поиске.

1 голос
/ 22 июля 2010

Лично я считаю, что иметь один return внизу гораздо удобнее для чтения и легче отлаживать, чем если бы у вас были return операторы повсюду, так как вы никогда не сможете сказать, когда функция выйдет из системы, поэтому вы в итоге ставите точки останова.например, в каждом операторе return вместо одного раза в конце.

Я думаю, что все зависит от предпочтений, поскольку для обоих способов есть действительные аргументы.

0 голосов
/ 22 июля 2010

Я бы никогда не использовал goto в качестве цели другого goto, поэтому, если есть некоторая дополнительная обработка в конце функции, используйте «break / Exit For», иначе просто вернитесь рано. В противном случае вы получите строки, которые означают «возврат», но говорят «перерыв» ... это не помогает в обслуживании.

...