Campos em uma classe C#

Campos em uma classe são variáveis a nível de classe que podem conter um valor. Geralmente, os membros do campo devem ter um modificador de acesso privado e usados com uma propriedade.

 

Eita, entendeu alguma coisa? Vamos tentar novamente…

 

Propriedades expõem Campos. Campos em uma classe devem (quase sempre) ser mantidos privados e acessados através do get e set de uma propriedade.

 

Mas para que serve afinal?

 

Para que usar campos em uma classe?

 

Os campos de uma classe servem para armazenar dados que devem ser acessíveis a mais de um método de uma classe e devem ser armazenados por mais tempo que a vida útil de qualquer método.

 

Vamos ver um exemplo para ilustrar.

 

Imagine que vamos construir uma classe que represente uma pessoa, como nome e sobrenome:

 

 

Class Pessoa
{
    private string _nome;
    private string _sobrenome;
}

 

Os dados nome e sobrenome são inerentes a classe. Desta forma, todos os métodos que criarmos dentro desta classe poderão acessa-las e, o mais importante, o valor não se perderá.

 

Vamos incluir alguns métodos:

 

class Pessoa
{
    private string _nome = “Celso”;
    private string _sobrenome = “Kitamura”;

    string Nome()
    {
        return _nome;
    }

    string NomeCompleto()
    {
        return string.Format(“{0} {1}”, _nome, _sobrenome);
    }
}

 

Assim o valor dos atributos nome e sobrenome se mantém o mesmo quando chamamos o método Nome() ou o método Sobrenome().

 

E como fazemos para escolher o nome e sobrenome que quisermos?

 

Podemos criar “acessadores” para estes campos:

 

 

class Pessoa
{
    private string _nome;
    private string _sobrenome;

    string Nome
    {
        get { return _nome;}
        set {_nome = value;}
    }

    string Sobrenome
    {
        get { return _sobrenome;}
        set {_sobrenome = value;}
    }

    String NomeCompleto()
    {
        return string.Format(“{0} {1}”, _nome, _sobrenome);
    }
}

 

Posso criar campos em uma classe e deixa-la pública?

 

Caramba, então porque ao invés de criar um campo e uma propriedade eu não posso fazer o seguinte?

 

public Nome() As String

 

Não é muito mais fácil e rápido?

 

Em teoria, sim, podemos criar um campo do tipo público ao invés de um campo e uma propriedade…

 

O que você precisa saber por hora é que criar um campo e uma propriedade correspondente para acessar e manipular seu valor é uma boa prática de programação, uma das “melhores práticas” que sempre vemos por aí mas poucos os seguem… [um parênteses aqui… pelo fato de vários programadores não seguirem as boas práticas, pode ter certeza que você será um profissional muito mais conceituado no mercado se segui-las].

 

Existem muitas outras razões para esta “regra” (uma delas é a possibilidade de validar seu valor antes de atribuir o valor ao campo), mas essa é uma discussão um pouco longa para agora então vamos deixa-la para um próximo artigo..re re…

 

E para receber um aviso quando os próximos artigos forem publicados, se cadastre na lista VIP do Celso!

Comece pelo e-book GRATUITO

5 Passos Para Ser Um App Dev

Se você não sabe por onde começar, este e-book te mostra os passos para ser um desenvolvedor de aplicativos de sucesso.
100% livre de spam.

Para enviar seu comentário, preencha os campos abaixo:

Deixe uma resposta

*

Seja o primeiro a comentar!