Ir para conteúdo
  • Cadastre-se

Retorno implícito de Self


Ver Solução Respondido por Daniel - PiraByte,
  • Este tópico foi criado há 238 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membro Pro Verificado
Postado

Olá a todos,

Estou reparando que no Delphi 11 ocorre o retorno implícito do objeto representado por Self na criação do mesmo.

Os dois exemplos abaixo funcionam para utilizar o método Add:

TStringList(TStringList.Create).Add
TStringList.Create.Add

Porque isso ocorre já que não existe o "Result := Self" no Create do TObject???

Desde já agradeço a atenção de todos 

  • Solution
Postado
1 hora atrás, bnobre disse:

Olá a todos,

Estou reparando que no Delphi 11 ocorre o retorno implícito do objeto representado por Self na criação do mesmo.

Os dois exemplos abaixo funcionam para utilizar o método Add:

TStringList(TStringList.Create).Add
TStringList.Create.Add

Porque isso ocorre já que não existe o "Result := Self" no Create do TObject???

Desde já agradeço a atenção de todos 

image.thumb.png.081c77b0e45190fb87872d7901a4facd.pnghttps://docwiki.embarcadero.com/RADStudio/Athens/en/Methods_(Delphi)#Constructors

na documentação fala sobre os Constructors, recomendo ver por lá.

Pelo que entendo, é necessário que o Create retorne a referência do objeto, para que você possa usar, exemplo:

procedure Exemplo;
var
  SL: TStringList;
begin
  SL := TStringList.Create;
  try
    SL.Add('1');
    SL.Add('2');
    FuncaoQueUsaStringList(SL);
  finally
    SL.Free;
  end;
end;

Fazendo conforme seu exemplo (abaixo), você não vai ter referência ao objeto do tipo TStringList, e não vai conseguir acessar ele em outra parte do código, nem mesmo liberar da memória

TStringList.Create.Add
  • Curtir 1
  • Obrigado 1
  • Este tópico foi criado há 238 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...