Propriedades em C#
As propriedades em C# são um recurso poderoso que permite controlar o acesso a campos privados de uma classe de forma segura e flexível. Elas funcionam como uma ponte entre os membros privados da classe e o mundo exterior, controlando como os dados são lidos ou modificados.
Isso promove o encapsulamento, protegendo os dados internos enquanto oferece controle total sobre como acessá-los.
🌉 Estrutura de uma Propriedade
Uma propriedade é composta por dois acessores principais: get
(leitura) e set
(escrita).
class Pessoa
{
private string nome;
public string Nome
{
get { return nome; }
set { nome = value; }
}
}
Uso:
Pessoa pessoa = new Pessoa();
pessoa.Nome = "João";
Console.WriteLine(pessoa.Nome); // Saída: João
🧠 Propriedades com Lógica Interna
É possível inserir lógica nos acessores, como validações:
class Funcionario
{
private int idade;
public int Idade
{
get { return idade; }
set
{
if (value >= 18)
idade = value;
else
Console.WriteLine("A idade deve ser maior ou igual a 18.");
}
}
}
Uso:
Funcionario funcionario = new Funcionario();
funcionario.Idade = 25;
Console.WriteLine(funcionario.Idade); // 25
funcionario.Idade = 16; // Mensagem de erro
🔒 Somente Leitura / Escrita
🔍 Propriedade Somente Leitura:
class Circulo
{
private double raio;
public Circulo(double raio)
{
this.raio = raio;
}
public double Area
{
get { return Math.PI * raio * raio; }
}
}
✍️ Propriedade Somente Escrita:
class Segredo
{
private string mensagem;
public string Mensagem
{
set { mensagem = value; }
}
}
⚡ Propriedades Automáticas
Para casos simples, você pode usar propriedades automáticas sem precisar de campos privados explícitos:
class Carro
{
public string Marca { get; set; }
public string Modelo { get; set; }
}
Uso:
Carro carro = new Carro();
carro.Marca = "Ford";
Console.WriteLine(carro.Marca);
📘 Propriedades Automáticas Somente Leitura
Com o init
, você permite atribuição apenas na inicialização:
class Livro
{
public string Titulo { get; init; }
}
Uso:
Livro livro = new Livro { Titulo = "Programando em C#" };
Console.WriteLine(livro.Titulo);
📌 Resumo
- Propriedades protegem seus campos privados com segurança.
- Permitem lógica nos acessores, como validações.
- Propriedades automáticas facilitam e economizam tempo.
- Com
get
,set
einit
, você tem controle total!
Comentários
Postar um comentário