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! |
|||
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 |
|||
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#. | |||
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 |
|||
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. |
|||
« Mais Antigo | Mais Recente »
|
Utilizadores a ver este tópico: 4 Visitante(s)