Questão de C#. - Versão de Impressão +- Forum Pplware (http://forum.pplware.com) +-- Fórum: Mais Tech (/forumdisplay.php?fid=11) +--- Fórum: Programação e Web (/forumdisplay.php?fid=16) +--- Tópico: Questão de C#. (/showthread.php?tid=7981) |
Questão de C#. - aucrun - 10-12-2010 13:34 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! RE: Questão de C#. - Bruno Bernardino - 10-12-2010 13:42 Não tenho a certeza, mas penso que pelo facto de ser private, talvez não consigas aceder por classes derivadas. RE: Questão de C#. - aucrun - 10-12-2010 14:38 (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! RE: Questão de C#. - Shogun - 27-12-2010 23:03 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 RE: Questão de C#. - kurayama - 29-12-2010 19:06 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. |