Forum Pplware

Versão Completa: Questão de C#.
Está de momento a ver uma versão reduzida do nosso conteúdo. Ver versão completa com o formato adequado.
Bom dia ...

Tenho uma pequena dúvida que queria ver se me conseguiam ajudar nela.
Imaginem que tenho uma Classe normal Empregado da seguinte forma:

class Empregado
{
string Nome = "";
int Idade = 0;
int Codigo = -1;
string Morada = "";
string NomeEsposa = "";
int NIB = 0;
private static string Director;
}

Imaginem ainda que tenho uma Classe Patrão que herda dessa classe Empregado.

Até aqui tudo bem ... agora imaginem que quero que a Classe Patrão de alguma forma no seu tratamento me indique que é o Director do Patrão em questão.
A única forma que arranjei para esta situação foi a de usar uma função na Classe Empregado que devolvesse o nome do Director, tipo:
public static string DevolveNomeDirector()
{
return Director;
}
E na Classe Patrão usaria o Empregado.DevolveNomeDirector()

De qualquer forma parece-me alguma coisa incorrecta, uma vez que a Classe Patrão deriva da Classe Empregado deveria ter acesso imediato à variável Estática Director, certo (mesmo por ser estática)?
Ou o meu raciocínio está incorrecto?

Obrigado!
Não tenho a certeza, mas penso que pelo facto de ser private, talvez não consigas aceder por classes derivadas.
(10-12-2010 13:42)Bruno Bernardino Escreveu: [ -> ]Não tenho a certeza, mas penso que pelo facto de ser private, talvez não consigas aceder por classes derivadas.

Era isso mesmo ... como não gosto de usar propriedades públicas terei de usar o GET/SET .... era isso mesmo ...

Obrigado Bruno! Obrigado
Passar a variavel para public é uma solução mas não é a mais elegante, até porque não percebo o porquê dessa variavel ser estatica. A razão de não poderes aceder é porque sendo uma variável estática não consegues aceder a ela no contexto de uma instância da classe. Ou seja, para acederes a ela terás que escrever algo como Empregado.Director.

Cumprimentos,
Shogun
Não sei como funciona em c#, mas pelo menos em c++ uma classe derivada só pode aceder directamente às variáveis da base se estas forem protected ou public.
Talvez se trocasses esse private por protected já funcionasse.
URL's de Referência