Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Questão de C#.
10-12-2010, 13:34
Mensagem: #1
Questão de C#.
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!
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
10-12-2010, 13:42
Mensagem: #2
RE: Questão de C#.
Não tenho a certeza, mas penso que pelo facto de ser private, talvez não consigas aceder por classes derivadas.

BrunoBernardino.com
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
10-12-2010, 14:38 (Esta mensagem foi modificada pela última vez a: 10-12-2010 14:39 por aucrun.)
Mensagem: #3
RE: Questão de C#.
(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
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
27-12-2010, 23:03
Mensagem: #4
RE: Questão de C#.
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
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
29-12-2010, 19:06
Mensagem: #5
RE: Questão de C#.
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.
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Saltar Fórum:


Utilizadores a ver este tópico: 1 Visitante(s)