Ce n'est pas un paramètre car au final tu fais bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part public static string AjouteCool(this string s) { return s + " cool"; }'.
maChaine.AjouteCool() sans paramètre ! c'est une extension à string.
On est des milliers à avoir vu l'intérêt tout de suite.
Par exemple : tu peux te faire des extensions à string pour dire que tu veux proposer une méthode qui ne renvoie que les 10 premiers mots (seul 10 sera en paramètre, pas la chaine)...
Tu peux faire une extension à DateTime pour te renvoyer une date dans un format exotique sans avoir à le spécifier (aucun paramètre dans ce cas, pas même la date).
Récémment les méthodes d'extenions m'ont permis de faire des extend à la suite Kendo UI ASP.NET MVC. J'ai pu crée des composants custom sans étendre de classe. Mais là on est dans du spécifique.
Pour revenir à de la simplicité, on peut également imaginer une extension à float mais qui va retourner un string pour retourner un format de float spécifique : de 10.5 on peut avoir ToEuro();
Donc ça permet de faire des raccourcis très simplement, rangés dans une même classe. OUI tu peux te faire une classe statique mais alors tu auras :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 float MonFloat = 10.5; MonFloat.ToEuro() Retournera : 10,5
Ca ajoute une visibilité et une maintenabilité très sympa.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 float MonFloat = 10.5; MaClasseStatique.ToEuro(MonFloat);
Et bien je disais dans mon 1er message, que j'aimais bien ces méthodes d'extensions (comme bcp de dév C#) et qu'en PHP on aurait probablement jamais ça car il est en typage faible.Je te rappelle que l'on parlais au préalable du typage fort vis-à-vis du typage faible. Franchement, je ne voie pas le rapport avec ta démonstration.
C'est tout ! Il n'empêche encore un fois que j'adore php...
Là dessus tu es parti sur le fait que mon exemple était "le principe de l'objet" : c'est faux et c'est tout.
Pour moi ça s'arrêtait là mais tu as continué en "m'expliquant la vie" ... En toute logique je me défends.
Partager