Qué es el término Self y cómo usarlo

3903 vistas

Esquemáticamente a la pregunta ¿quién soy yo?, el término Self responderá yo mismo enviando la referencia de la instancia en curso dentro de un método de su clase.
Selft permite, pues, conocer la instancia en curso y en algunos casos quitar cualquier ambigüedad.

Por ejemplo aquÃ:



delphi
  1. procedure TObject.Free;
  2. begin
  3.   if Self <> nil then
  4.     Destroy;
  5. end;



nos permite saber si el objeto en curso está o no instanciado antes de hacer una llamada al destructor.

En este caso:



delphi
  1. with TPaintBox(Sender).Canvas.Brush do
  2.   begin
  3.     Color := Self.Color;



hay una ambigüedad en la propiedad color común a la instancia en curso (Self) y al objeto del with (Canvas.Brush). Self permite saber exáctamente de qué propiedad hablamos.