quinta-feira, 7 de abril de 2011

Tirando um maior proveito do Exit

Olá. Estou fazendo uma higienização por aqui, tirando os warnings dos projetos. E teve um que me deixou muito encucado:

[DCC Warning] Unit2.pas(39): W1035 Return value of function 'TForm2.EntradaValida' might be undefined

Vamos ao código:

function TForm2.EntradaValida(piEntrada: Integer): Boolean;
begin
  if (piEntrada > 0) then
  begin
    {...}
    Exit;
  end;

  {...}
  Result := True;
end;

Neste exemplo o compilador reclama que o resultado da função EntradaValida não foi definido.

O compilador foi ninja o suficiente para perceber que se entrar no if..then o método será interrompido pelo comando Exit.

Desde o D2009 podemos chamar o Exit de dentro de uma função passando como parâmetro o resultado desta função. Isso elimina o warning W1035. Veja no exemplo abaixo:

function TForm2.EntradaValida(piEntrada: Integer): Boolean;
begin
  if (piEntrada > 0) then
  begin
    {...}
    Exit(False); {<-- PULO DO GATO}
  end;

  {...}
  Result := True;
end;

É isso ai.

Minha lista de blogs