Bonjour,

Est-ce que quelqu'un sait expliquer pourquoi les accesseurs des propriétés de classe doivent être statiques ?

Cette contrainte est étrange puisque une propriété de classe est liée à la classe. Il serait logique que les accesseurs disposent d'une référence à la classe par l'argument Self comme c'est le cas des méthodes de classe non statiques.De plus, cette limite est contournable par l'emploi de fonctions de classe qui fonctionnent comme des pseudo propriétés

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
TType1 = class
private
  class function GetProp1: string; static; // Ne peut pas être virtuelle et surchargée
public
  class property Prop1 : string read GetProp1;
  // Pseudo class property prop2
  class function Prop2 : string; virtual;  // Est virtuelle et peut être surchargée
end;
Cette technique est utilisée par Borland/CodeGear/Embarcadero pour définit la propriété ClassName

Merci par avance,

DLZ