• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

dpeneireiro

Encapsulamento de arrays

4 mensagens neste tópico

Olá pessoal, estou aqui com uma dúvida de como se consegue encapsular um array...

tenho uma classe com duas variáveis em que uma delas é um array definida da seguinte forma:


class Aluno
{
    private string _nome;
   
    /// <summary>
    ///Encapsulamento da variavel _nome.
    /// </summary>
    public string nome
    {
        get
        {
            return _nome;
        }

        set
        {
            _nome = value;
        }
    }

    // Nao sei como encapsular esta variavel??????
    private int [] _notas;

    /// <summary>
    /// Construtor da classe aluno.
    /// </summary>
    /// <param name="nome_aluno">Nome do aluno.</param>
    public Aluno(string nome_aluno)
    {
        this._nome = nome_aluno;
        _notas=new int[10];
    }
}

ora, o que eu queria era fazer no programa principal:


Aluno aluno = new Aluno("Tiago");

aluno.nota[0]=10;
aluno.nota[1]=5;
......

if(aluno.nota[1]>10)
{
....
}

Alguém sabe como fazer isto?

A maneira que eu tenho mais simples é criar um método onde passo o index e mudo o valor ou leio o valor do array, mas esse não é o melhor método de fazer o encapsulamento por causa do garbage colector e etc...

Alguém tem uma idéia?

Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Da mesma maneira que fizeste pro nome.

De forma simplificada...

public int[] Notas {
  get { return _notas; }
  set { _notas = value; }
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas isso não me vai premitir fazer o que eu quer no programa principal ou vai???

aluno.nota[0]=10;
aluno.nota[1]=5;
......
if(aluno.nota[1]>10)
{
....
}

Já pensei em algo do genero

public int statusLeitura[int index]
{
    get
   {
        return _statusLeitura[index];
   }
    set
   {
        _statusLeitura[index] = value;
    }
}

Mas não funciona bem...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já experimentei e resulta mesmo como disses-te.

Estava um pouco reticente porque vi algures que isto não iria funcionar...

Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora