Programação Orientada a Objetos com C# (Parte 7.5) – Namespace » Link Sinergia
Programação Orientada a Objetos com C# (Parte 7.5) – Namespace
Este tema da série Programação Orientada a Objetos com C# irá demandar mais publicações. Sendo assim, a numeração sequencial desta parte da série passou de 7.4 para 7.5 (vide título) e assim seguirá (7.6, 7.7…) mediante a necessidade de conclusão.
Com a alteração da classe Bilhete corrigindo erros anteriormente indicados pelo compilador, o próximo passo na Programação Orientada a Objetos com C# será entender como Interfaces podem implementar escopos de maneira que o compilador não acuse erros por violação de Namespaces.
Alterando a Interface IBilhete
Partindo da interface IBilhete, pode-se visualizar:
Microsoft Visual Studio 2010 Ultimate – Tela da Interface
Deve-se modificar a área da interface, alterando-a para o seguinte código:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace linksinergia.metro.bilhete { interface IBilhete { decimal Saldo(); decimal CobraTarifa(); void Debita(); } }
O Namespace antes não havia sido alterado (mantinha-se o padrão ConsoleApplication), agora por obrigatoriedade, a classe Unitario define a necessidade da interface IBilhete declarar-se sobre o mesmo Namespace que a primeira citada, remediando os erros antes exibidos pelo compilador referente a interface IBilhete.
"Error 5 The type or namespace name 'IBilhete' could not be found (are you missing a using directive or an assembly reference?) ".
Estas mensagens de erro ocorreram em razão da tentativa de execução da aplicação, com a classe Unitario, Bilhete e a interface IBilhete utilizando-se de um Namespace diferenciado comparado as Classes UnicoComum, UnicoEstudante, EspecialDesempregado (a coluna File da listagem de erros complementa a descrição destes), não respeitando um escopo em comum.
Esta publicação visa alterar a Classe IBilhete garantindo o ajuste correto para execução da Aplicação, porém uma vez que o Namespace da interface IBilhete fora modificado igualmente as classes Unitario e Bilhete, apenas estes três elementos estabelecem-se como corrigidos. Todas as outras Classes que herdam da classe Bilhete e referenciam com a Interface IBilhete, permanecem acusando erros no compilador.
"Por que as classes UnicoComum, UnicoEstudante, EspecialDesempregado permanecem acusando os erros no compilador após a alteração do Namespace definido para as classes Unitario, Bilhete e a interface IBilhete?"
Na próxima publicação, ainda sétima parte da série: Programação Orientada a Objetos com C# será apresentado o sexto post sobre Namespace, o leitor irá conferir a continuidade do tema entre outros aspectos relevantes a este assunto.
Link permanente para este artigo: http://linksinergia.com.br/2016/11/14/programacao-orientada-a-objetos-com-c-parte-7-5-namespace/