typestar

Propiedades y getters en Delphi

Un círculo cuya área es una propiedad respaldada por un getter en vez de por datos guardados.

program PropertiesGetters;
uses SysUtils;
type
  TCircle = class
    Radius: Double;                      // the storage
    function GetArea: Double;            // the getter
    property Area: Double read GetArea;  // read-only, computed on access
  end;
function TCircle.GetArea: Double;
begin
  Result := Pi * Radius * Radius;  // Result carries the return value
end;
var Ring: TCircle;
begin
  Ring := TCircle.Create;
  Ring.Radius := 2.5;
  // A property reads like a field, so the getter needs no parentheses.
  WriteLn(Format('r %.1f has area %.2f', [Ring.Radius, Ring.Area]));
  Ring.Free;
end.

Cómo funciona

  1. property Area: Double read GetArea; nombra una propiedad de solo lectura sin campo detrás.
  2. Result := Pi * Radius * Radius dentro de TCircle.GetArea calcula el valor en cada lectura.
  3. Ring.Area en la salida se lee como un campo pero corre el getter, así que no lleva paréntesis.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
575
Tokens
96
Ritmo de tres estrellas
70 tpm

Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 82 segundos.

Escribe este fragmento

Paso 2 de 3 en Clases; paso 20 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →