Avatar ·

Existe-t-il des propriétés d'extension en C# ?

Bonjour à tous ! J'ai récemment commencé à apprendre C# et j'ai rencontré une situation intéressante. Je sais qu'il existe en C# des méthodes d'extension (extension methods) qui permettent d'ajouter de nouvelles méthodes à des types existants sans modifier leur code source. Par exemple, je peux écrire une méthode d'extension pour une chaîne : ```csharp public static class StringExtensions { public static bool IsPalindrome(this string str) { // vérification de palindrome } } ``` Cela fonctionne parfaitement. Mais j'ai besoin non seulement d'un comportement, mais précisément d'une propriété. Supposons que j'ai une classe `Order` provenant d'une bibliothèque tierce, et je souhaite lui ajouter une propriété calculée `TotalPrice` qui additionnerait le coût de tous les articles de la commande. Je ne peux pas modifier la classe `Order` car elle ne m'appartient pas. Est-il possible de faire quelque chose comme ceci ? ```csharp // Je veux cela, mais cela ne compile pas public static class OrderExtensions { public static decimal TotalPrice { get { return this.Items.Sum(i => i.Price * i.Quantity); } } } ```