Avatar ·

Existem propriedades de extensão (extension properties) em C#?

Olá a todos! Recentemente comecei a estudar C# e me deparei com uma situação interessante. Eu sei que em C# existem métodos de extensão (extension methods), que permitem adicionar novos métodos a tipos existentes sem modificar seu código-fonte. Por exemplo, posso escrever um método de extensão para string: ```csharp public static class StringExtensions { public static bool IsPalindrome(this string str) { // verificação de palíndromo } } ``` Isso funciona perfeitamente. Mas eu preciso não apenas de um comportamento, mas sim de uma propriedade. Suponha que eu tenha uma classe `Order` de uma biblioteca de terceiros, e eu queira adicionar a ela uma propriedade calculada `TotalPrice`, que some o custo de todos os itens do pedido. Não posso modificar a classe `Order`, pois ela não é minha. É possível fazer algo assim? ```csharp // Quero assim, mas isso não compila public static class OrderExtensions { public static decimal TotalPrice { get { return this.Items.Sum(i => i.Price * i.Quantity); } } } ```