You are on page 1of 10

ProgramaoOrientadaaObjetoscomC#(Parte7.

6)
Namespace
Categorias:Namespace

porThiagoRichardVanicore

Resumo:

Oobjetivonoseaplicaaestepost.

Uma vez que o contedo total desta srie foi dividido em partes, devese considerar absoluto o resumo da primeira postagem at o
momentopresente.

EstetemadasrieProgramaoOrientadaaObjetoscomC#irdemandarmaispublicaes.Sendoassim,anumeraosequencial
destapartedasriepassoude7.5para7.6(videttulo)eassimseguir(7.7,7.8)medianteanecessidadedeconcluso.

Palavraschaves:

Interface,Encapsulamento,Herana,Polimorfismo,Propriedades,Classe.

Texto:

MosaObra

Com a alterao da interface IBilhete corrigindo erros anteriormente indicados pelo compilador, o prximo passo na Programao
OrientadaaObjetoscomC#serdarcontinuidadeaestesassuntosesuasvariantes,vistasatomomentopresente.

Adendo

PararealizaodoPostforamutilizadososseguintesProgramas:

Windows10Pro
MicrosoftVisualStudio2010UltimateSP1(ServicePack1).

A nica configurao realizada aps a instalao dos programas acima, foi manter o Microsoft Visual Studio sendo executado como
usurioAdministradordoSistemaOperacional,afimdeevitarmaioresproblemas.

AlterandoaclasseUnicoComum

PartindodaclasseUnicoComum,podesevisualizar:
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace ConsoleApplication
7 {
8 public class UnicoComum : Bilhete, IBilhete
9 {
10 private decimal saldo = 100.00m;
11
12 public decimal Saldo()
13 {
14 return saldo;
15 }
16
17 private DateTime dataPrimeiraPassagem;
18 public DateTime DataPrimeiraPassagem
19 {
20 get { return dataPrimeiraPassagem; }
21 set { dataPrimeiraPassagem = value; }
22 }
23
24 private decimal tarifa;
25 public override decimal CobraTarifa()
26 {
27 TimeSpan diferencaHora = dataPrimeiraPassagem - DateTime.Now;
28 tarifa = base.CobraTarifa();
29
30 if (diferencaHora.Hours <= 2)
31 {
32 tarifa = tarifa + 2.12m;
33 }
34
35 return tarifa;
36 }
37
38 public void Debita()
39 {
40 saldo = saldo - tarifa;
41 }
42 }
43 }

Tela:
MicrosoftVisualStudio2010UltimateTeladaClasse

Devesemodificarareadaclasse,alterandoaparaoseguintecdigo:
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace linksinergia.metro.bilhete
7 {
8 public class UnicoComum : Bilhete, IBilhete
9 {
10 private decimal saldo = 100.00m;
11
12 public decimal Saldo()
13 {
14 return saldo;
15 }
16
17 private DateTime dataPrimeiraPassagem;
18 public DateTime DataPrimeiraPassagem
19 {
20 get { return dataPrimeiraPassagem; }
21 set { dataPrimeiraPassagem = value; }
22 }
23
24 private decimal tarifa;
25 public override decimal CobraTarifa()
26 {
27 TimeSpan diferencaHora = dataPrimeiraPassagem - DateTime.Now;
28 tarifa = base.CobraTarifa();
29
30 if (diferencaHora.Hours <= 2)
31 {
32 tarifa = tarifa + 2.12m;
33 }
34
35 return tarifa;
36 }
37
38 public void Debita()
39 {
40 saldo = saldo - tarifa;
41 }
42 }
43 }

DetalhesdamodificaodaClasse:

O Namespace antes no havia sido alterado (mantinhase o padro ConsoleApplication), agora por obrigatoriedade, a
classeBilheteeainterfaceIBilhetedefinemanecessidadedaclasseUnicoComumdeclararsesobreomesmoNamespacequeas
primeirascitadas,remediandooserrosantesexibidospelocompiladorreferenteaclasseUnicoComum.

Telaaocolarocdigo:
MicrosoftVisualStudio2010UltimateTelaapsAlteraodaClasse

Porfim,devesesalvaraclasseUnicoComumesuasalteraesclicandonobotoSalvar.Telacomaconfirmaopositiva(verrodapda
janela)aoclicarnobotoSalvar:
MicrosoftVisualStudio2010UltimateTelaapsSalvaroProjeto

Finalizandooexemplo,restaapenasexecutaraAplicao,deveseentoclicarnobotoStartDebugging(F5):
MicrosoftVisualStudio2010UltimateExecuodaAplicao

Surgirumajaneladeconfirmao,clicarnobotoYes:
MicrosoftVisualStudio2010UltimateExecuodaAplicao

TelaaoclicarnobotoYes:
MicrosoftVisualStudio2010UltimateExecuodaAplicao

Noresultadodaexecuo,oMicrosoftVisualStudioseencarregoudeapresentarumanovalistagemdeerroscomaseguintedescrio:

Error 1 The type or namespace name Bilhete could not be found (are you missing a using directive or an assembly
reference?).
Error 2 The type or namespace name Bilhete could not be found (are you missing a using directive or an assembly
reference?)
Error 3 The type or namespace name IBilhete could not be found (are you missing a using directive or an assembly
reference?).

Estasmensagensdeerroocorreramemrazodatentativadeexecuodaaplicao,comaclasseUnitario,Bilhete,interfaceIBilhetee
a classe UnicoComum utilizandose de um Namespace diferenciado comparado as Classes UnicoEstudante e
EspecialDesempregado(acolunaFiledalistagemdeerroscomplementaadescriodestes),norespeitandoumescopoemcomum.

ConsideraesFinais:

Esta publicao visa alterar a Classe UnicoComum garantindo o ajuste correto para execuo da Aplicao, porm uma vez que o
Namespace da classe UnicoComum fora modificado igualmente as classes Unitario, Bilhete e a interface IBilhete, apenas estes
quatro elementos estabelecemse como corrigidos. Todas as outras Classes que herdam da classe Bilhete e referenciamse com a
InterfaceIBilhete,permanecemacusandoerrosnocompilador.

importanteressaltarque,amedidaqueospostsforemevoluindo,comapresentaestericassomadasasprticas,atendnciaqueo
leitorvsanandosuasdvidasedificuldadesdeentendimento.
Naprximapublicao,aindastimapartedasrie:ProgramaoOrientadaaObjetoscomC#serapresentadoostimopostsobre
Namespace,oleitorirconferiracontinuidadedotemaentreoutrosaspectosrelevantesaesteassunto.

RefernciasBibliogrficas:

Asrefernciasbibliogrficasseroapresentadasnoltimopostdestasrie.

Compartilhar
Compartilhar
Compartilhar

Email
Curtir

Sobreoautor

ThiagoRichardVanicore

ThiagoRichardVanicoreformouseemanliseedesenvolvimentodesistemas,possuicertificaoITILFoundationV2
eentreseusconhecimentosesto:ASP.Net(WebForms/MVC5/WebAPI)C#,HTML5,Html/XHtml,CSS3,JQuery,
JQueyMobile,JavaScript,Xml,Ajax,Json,MicrosoftSqlServer,MySql,Firebird,Azure,VisualStudioOnline,
Scrum,UML,CRM,QualityAssurance,CTI(ComputerTelephonyIntegration)MPSBR(MelhoriadeProcessosdo
SoftwareBrasileiro).

Linkpermanenteparaesteartigo:http://linksinergia.com.br/2016/11/23/programacaoorientadaaobjetoscomcparte76namespace/

You might also like