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); } }
}
```