No C# 13, foi introduzido o suporte a membros parciais para propriedades e indexadores, ampliando a funcionalidade já existente para métodos. Essa novidade permite que desenvolvedores declarem propriedades e indexadores como partial, facilitando a divisão de sua implementação em múltiplos arquivos ou permitindo que ferramentas automatizadas gerem parte do código.
Principais pontos sobre membros parciais em propriedades e indexadores:
Assinaturas Compatíveis: As assinaturas da declaração e da implementação devem corresponder exatamente para que o compilador possa associá-las corretamente.
Restrições: Não é possível usar propriedades automáticas (auto-properties) para implementar propriedades parciais. Ou seja, a implementação deve fornecer explicitamente os acessadores get e/ou set.
Exemplo de Propriedade Parcial:
// Declaração da propriedade parcial
public partial class Produto
{
public partial decimal Preco { get; set; }
}
// Implementação da propriedade parcial
public partial class Produto
{
private decimal preco;
public partial decimal Preco
{
get => preco;
set
{
if (value < 0)
throw new ArgumentOutOfRangeException(nameof(value), "O preço não pode ser negativo.");
preco = value;
}
}
}
public class Program
{
public static void Main()
{
var produto = new Produto();
produto.Preco = 10;
Console.WriteLine("O preço do produto é: " + produto.Preco);
}
}
No exemplo acima, note que para declarar uma propriedade estática, nós apenas adicionamos a palavra "partial", como no trecho: "public partial decimal Preco".
A introdução de membros parciais para propriedades e indexadores no C# 13 oferece aos desenvolvedores maior flexibilidade e controle sobre a estrutura e organização do código, promovendo práticas de desenvolvimento mais eficientes e colaborativas.