apostila c#

51
 APOSTILA DE PROGRAMAÇÃO EM C# PROF. MSC. LILUYOUD CURY DE LACERDA

Upload: valaramari

Post on 06-Jul-2015

1.509 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 1/51

 

 

A P O S T I L A D E P R O G R A M A Ç Ã O E M C #

PROF. MSC. LILUYOUD CURY DE LACERDA

Page 2: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 2/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

CONTEÚDO

Pré-requisitos: .......................................................................................................................................................................................... 4 DVD de Acompanhamento .............................................................................................................................................................. 4 

Instalação .................................................................................................................................................................................................... 5 Instalação do Servidor Web (IIS) ................................................................................................................................................. 5 Instalação do .NET Framework .................................................................................................................................................... 6 Instalando o Visual Studio 2005 ................................................................................................................................................... 9 Instalando Componentes Adicionais ........................................................................................................................................ 14 

O Visual Studio 2005 ............................................................................................................................................................................ 15 Menu Principal ................................................................................................................................................................................... 16 Barra de Atalhos ................................................................................................................................................................................ 16 Solution Explorer .............................................................................................................................................................................. 16 Properties Window .......................................................................................................................................................................... 17 ToolBox ................................................................................................................................................................................................. 19 Area de Trabalho .............................................................................................................................................................................. 19 

Start Page ........................................................................................................................................................................................ 20 Aplicação em modo de Design ................................................................................................................................................ 21 Aplicação em modo de Codificação ...................................................................................................................................... 22 

A linguagem C#....................................................................................................................................................................................... 23 História da Linguagem ................................................................................................................................................................... 23 

Criação do Nome .......................................................................................................................................................................... 24 Normalização ................................................................................................................................................................................. 24 Política .............................................................................................................................................................................................. 24 

Características.................................................................................................................................................................................... 24 Produtividade e Segurança ...................................................................................................................................................... 25 Abraça os padrões emergentes de programação Web ...................... ...................... ..................... ...................... .......... 26 Elimina erros de programação de alto custo ................... ...................... ...................... ...................... ..................... .......... 26 Reduz os custos de desenvolvimento do dia a dia com suporte pré-construído para versioning ............. 26 Melhor mapeamento entre processos de negócio e implementação ................... ...................... ...................... ...... 27 Interoperabilidade extensiva .................... ...................... ...................... ..................... ...................... ..................... .................. 27 Bibliotecas de código .................................................................................................................................................................. 28 

Estruturas da linguagem .................................................................................................................................................................... 29 Criando uma Solução....................................................................................................................................................................... 29 Criando o Programa Alo Mundo ................................................................................................................................................. 30 Estruturas básicas ............................................................................................................................................................................ 33 

Comentários ................................................................................................................................................................................... 33 

Page 3: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 3/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

Blocos de Comando ..................................................................................................................................................................... 34 Variáveis e Tipos de Dados ...................................................................................................................................................... 35 Conversão de Tipos ..................................................................................................................................................................... 37 

Estruturas de Controle ................................................................................................................................................................... 41 

Page 4: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 4/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

PRÉ-REQUISITOS:

Para o bom andamento do curso e para que o aluno possa testar os programas aqui desenvolvidos faz-se necessário ter um mínimo de infra-estrutura computacional para se criar um ambiente dedesenvolvimento:

O computador deve estar rodando um dos seguintes Sistemas Operacionais:

  Windows 2000 com SP4  Windows XP com o Windows Instaler 3.1  Windows XP SP2  Windows 2003 Server  Windows Vista

O computador deve ter pelo menos 1.0 GHz de processador e 512Mb de RAM e 2Gb livre no Disco

Rígido.

Caso o queira instalar o SQL Server 2005 Express Edition, que é um servidor de banco de dadospoderoso e gratuito da Microsoft, recomenda-se pelo menos 1Gb RAM.

DVD DE ACOMPANHAMENTO

Para facilitar, junto a apostila é entregue um DVD com a seguinte estrutura, onde:

  Ajax é o diretório onde se encontra ainstalação do Ajax para .NET (Web 2.0).

   Apostilas é o diretório onde se encontraalgumas apostilas que envolvem .NET.

  Componentes é o diretório onde seencontra algumas suítes de componentespara .NET (versões Trials).

  SQL Server é o banco de dados gratuito da Microsoft que é totalmente integrado ao VisualStudio.

  Vídeos é o diretório onde se encontra alguns tutoriais em vídeo da plataforma .NET.  Visual Studio é o diretório onde se encontra o Ambiente de desenvolvimento para o .NET

Framework (versão trial de 180 dias).  DotNet Framework.exe é o arquivo de instalação da a plataforma de desenvolvimento .NET.  Visual Studio SP1.exe é o arquivo de instalação do Service Pack 1 do Visual Studio.

Page 5: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 5/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

INSTALAÇÃO

Para preparar um ambiente integrado de desenvolvimento completo baseado em .NET, tanto paraWindows quanto para Web, temos que seguir os seguintes passos:

  Instalação do servidor web, no caso o IIS  Instalação do .NET Framework  Instalação do Visual C# (com ou sem banco de dados dependendo da sua máquina)  Instalação do Visual Web Developer  Instalação do Visual Studio Service Pack 1  Instalação do Ajax  Instalação de Componentes Adicionais

INSTALAÇÃO DO SERVIDOR WEB (IIS)

O IIS (Internet Information Services) é um servidor web criado pela Microsoft para seus sistemasoperacionais possuindo um conjunto integrado de serviços de rede que permite publicar conteúdo edisponibilizar arquivos e aplicações em ambientes Internet/Intranet/Extranet, totalmente integrado aosistema operacional e dotado de uma interface administrativa 100% gráfica, o IIS é uma das melhoresopções disponíveis para hospedagem de web sites, site FTP e grupos de notícias, bem como odesenvolvimento de aplicações para Web.

Sua primeira versão foi introduzida com o Windows NT Server versão 4, e passou por várias

atualizações. As últimas versões disponíveis são:  IIS 5.0 para Windows XP  IIS 6.0 para Windows 2003  IIS 7.0 para Windows Vista e 2003.

Uma de suas principais características é a geração de páginas HTML dinâmica como o ASP (ActiveServer Pages) e ASPX (evolução do ASP), mas também pode usar outras tecnologias com adição demódulos de terceiros.

Depois do lançamento da plataforma .NET em 2002 o IIS ganhou também a função de gerenciar oASP.NET. Este é formado basicamente por dois tipos de aplicações:

  Páginas Web: Páginas tradicionais acessadas por usuários, contém a extensão ASPX  Web Services: Funções disponibilizadas pela rede, chamada por aplicativos ASMX

O ASP.NET é compilado antes da execução. Esta característica traz vantagens sobre as opçõesinterpretadas, como o ASP, JSP e o PHP.

Além de servidor web, suporta a criação e a utilização de certificados digitais com o Certificate Services,a tecnologia de colaboração via Internet com Sharepoint Services e WebDAV, as diretivas Server-SideIncludes (SSI) e auditoria completa de visitas e uso.

Para instalar o IIS no Windows XP, devemos seguir os seguintes passos:

Page 6: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 6/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

1. Abra o Painel de Controle do Windows

2. Clique em Adicionar e remover programas

3. Clique em Adicionar / remover componentesdo Windows 

4. Caso a opção Internet Information Services(IIS) não esteja marcada, marque-a, e clique emavançar. Se já estiver marcado, o IIS já estáinstalado.

5. Para concluir a instalação, será pedido o CD doWindows XP e depois de colocá-lo, o IIS seráinstalado automaticamente.

INSTALAÇÃO DO .NET FRAMEWORK

Microsoft .NET é uma iniciativa da Microsoft em que visa uma plataforma única para desenvolvimento eexecução de sistemas e aplicações. Todo e qualquer código gerado para .NET, pode ser executado emqualquer dispositivo ou plataforma que possua um framework: a "Plataforma .NET" (.NET Framework).

Com idéia semelhante à plataforma Java, o programador deixa de escrever código para um sistema oudispositivo específico, e passa a escrever para a plataforma .NET.

Page 7: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 7/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

A plataforma .NET, é executada sobre uma CLR (Common Language Runtime - Ambiente de ExecuçãoIndependente de Linguagem) interagindo com uma Coleção de Bibliotecas Unificadas, que juntas são opróprio framework. Esta CLR é capaz de executar, atualmente, mais de vinte diferentes linguagens deprogramação, interagindo entre si como se fossem uma única linguagem, entre elas podemos citar:

  APL  Boo  Fortran  Pascal  C++  Haskell  Perl  C#  Java  Python  COBOL  Microsoft JScript®  RPG  Component Pascal  Mercury

  Scheme  Curriculum  Mondrian  SmallTalk  Eiffel  Oberon  Standard ML  Forth  Oz  Microsoft Visual Basic  Delphi  J#  Ruby  Lua

Esta plataforma permite a execução, construção e desenvolvimento de Web Services e Aplicações Webde forma integrada e unificada.

A plataforma .NET se baseia em um dos principios utilizados na tecnologia Java (compiladores JIT), osprogramas desenvolvidos para ela são duplo-compilados, ou seja são compilados duas vezes, uma nadistribuição e outra na execução.

Um programa é escrito em qualquer umas das linguagens de programação disponível para a plataforma,o código fonte gerado pelo programador é então compilado pela linguagem escolhida gerando umcódigo intermediário em uma linguagem chamada MSIL (Microsoft Intermediate Language).

Este novo código fonte gera um arquivo chamado de Assembly, de acordo com o tipo de projeto:

  EXE - Arquivos Executáveis, Programas  DLL - Biblioteca de Funções  ASPX - Página Web

  ASMX - Web Service

No momento da execução do programa ele é novamente compilado, desta vez pelo JIT (Just In TimeCompiler), de acordo com a utilização do programa, por exemplo:

Temos um Web Site desenvolvido em ASP.NET, ao entrar pela primeira vez em uma página o JIT irá

compilá-la, nas outras vezes que algum outro usuário acessar esta página, ele usará esta compilação.

Também é possível, através de ferramentas específicas, "pré-compilar" o código para que não se tenha ocusto da compilação JIT durante a execução.

O fato desta arquitetura utilizar a MSIL gera uma possibilidade pouco desejada entre os criadores de

software que é a de fazer a "engenharia reversa", ou seja, a partir de um código compilado, recuperar o

Page 8: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 8/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

código original. Isto não é uma idéia agradável para as empresas que sobrevivem da venda de softwaresproduzidos nesta plataforma.

Por causa disso, existem ferramentas que "ofuscam" este código MSIL, trocando nomes de variáveis,métodos, interfaces e etc para dificultar o trabalho de quem tentar uma engenharia reversa num código

compilado MSIL.

A versão atual do .NET Framework é a 3.0, chamado de WinFx. Esse é o framework padrão do WindowsVista, mas pode ser instalado no Windows XP sem problemas. O WinFx foi lançado oficialmente no fimde 2006 e as principais funcionalidades adicionadas em relação a versão 2.0 é a incorporação de 3tecnologias base:

  Windows Communication Foundation: Permite gerenciar toda a comunicação entre oscomponentes do .NET

  Windows Presentation Foundation: Permite criar uma interface do usuário bem mais rica,com recursos 3D entre outros.

  Windows Workflow Foundation: Permite gerenciar o fluxo de informações dentro de umaentrutura baseada em .NET

O .Net Framework 3.0 (WinFx) pode ser baixado diretamente do site da Microsoft pelo endereço:

http://www.microsoft.com/downloads/details.aspx?displaylang=pt-br&FamilyID=10CC340B-F857-4A14-83F5-25634C3BF043

ou para quem tem o DVD que acompanha a apostila, basta seguir os seguintes passos:

1. Execute o arquivo DotNet Framework.exelocalizado na pasta raiz do DVD

2. Marque a opção aceitar o contrato de licença eclique no botão Instalar

3. Caso você dê um duplo clique no tray icon vocêverá o andamento da instalação

4. Quando a instalação acabar aparecerá essa telade Instalação com êxito. Clique em sair.

Page 9: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 9/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

INSTALANDO O VISUAL STUDIO 2005

Microsoft Visual Studio 2005 é um programa desenvolvido pela Microsoft, que possibilita um ambienteintegrado de desenvolvimento (IDE). Existem várias versões do mesmo, dentre elas podemos citar:

  O Visual Studio Express que consiste em 6 produtos separados com objetivos específicos quesão o Visual Basic 2005 Express Edition, Visual C# 2005 Express Edition, Visual C++ 2005Express Edition, Visual J# 2005 Express Edition, Visual Web Developer 2005 Express Edition, eSQL Server 2005 Express Edition.

  O Visual Studio 2005 Professional Edition que é composto pelos 6 programas acima integradose mais algumas funcionalidades existente apenas na versão Professional tais como ferramentasde Acessibilidade, Testes Automatizados e Análise, e principalmente, o suporte a add-ins emacros de terceiros, que permitem estender a funcionalidade da IDE.

  O Visual Studio 2005 Team Edition que tem todas as funcionalidades do Professional, mas umaextensa lista de características específicas para colaboração em equipe, gerenciamento deprojetos, ferramentas de Banco de Dados e Business Inteligence – BI, entre muitas outras

características. Nessa versão se faz necessário um servidor chamado Team Server rodandosobre o Windows 2003 Server, juntamente com o Banco de Dados SQL Server 2005 e Sharepoint Services 2007.

Com o Visual Studio temos a nossa disposição um ambiente especialmente dedicado aodesenvolvimento e ao Framework .NET, baseado nas linguagens Visual Basic (VB), C++ (C Plus Plus),C#(C Sharp) e J# (Jey Sharp), permitindo que qualquer pessoa possa criar e modificar aplicações, sejaweb, móvel ou desktop.

O Visual Studio contém:

 Um editor WYSIWYG (O que você vê é o que você tem)

  Drag-and-drop (arrastar e soltar)  Ferramenta de desenho de interfaces de usuário  Suporte a HTML Extendido & editores de código e HTML  Um gerenciador de banco de dados  Suporte a outras tecnologias web, tais como CSS, Javascripte XML  Um ambiente integrado de validação em tempo de desenho para padrões como XHTML 1.0/1.1

e CSS 2.1.  Exemplos prontos de projetos, que no Visual Studio são chamados de Starters Kit. Junto com o

Visual Studio tem alguns, mas no site da Microsoft, você pode encontrar muitos outros projetos.

Com isso, o Visual Studio é considerado a melhor ferramenta para análise, desenho e desenvolvimentode aplicações (projetos de desenvolvimento).

O Visual Studio 2005 Express pode ser baixado gratuitamente do site da Microsoft pelo endereço:

http://msdn.microsoft.com/vstudio/express/downloads/ 

ou para quem tem o DVD que acompanha a apostila, tem uma versão trial de 180 dias da versão TeamEdition do Visual Studio.

Para instalá-lo, basta seguir os seguintes passos:

Page 10: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 10/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

10 

1. Dentro do diretório Visual Studio e nosubdiretório VS, execute (duplo clique) o arquivosetup.exe.

Ao aparecer a tela a seguir, clique em Install

Visual Studio 2005.

2. Depois da descompactação dos arquivos de

instalação aparecerá a tela a seguir. Apenas cliqueem Next .

3. Clique na opção I accept terms of the License

 Agreement  para aceitar a licença de uso daMicrosoft, e depois clique em Next .

4. Selecione a instalação personalizadaselecionando a opção Custom e depois clique emNext .

Page 11: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 11/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

11 

5. Desmarque a opção Microsoft SQL Server por 2motivos:

  Se sua máquina tiver apenas 512 Mb RAMou menos, não é recomendável instalá-lo.

  Caso sua máquina tenha mais de 512 Mb,então o recomendável é instalar a versãofull do SQL Server 2005Express que égratuito e pode ser baixado no site daMicrosoft, e é o mesmo que se encontra noDVD da apostila.

6. A tela de acompanhamento da instalação seráapresentada. Pode acontecer nesse meio tempo,ser necessário a reinicialização do Windows (vaidepender da configuração de sua máquina). Masao reiniciar, a instalação continuará de ondeparou.

7. Ao final da instalação, clique em Finish.

8. Depois de instalado o Visual Studio, a telainicial da instalação é mostrada novamente.

Nesse caso é importante que seja instaladotambém o MSDN, que é toda a documentação doVisual Studio, suas bibliotecas, o help, exemplos,entre outros.

Clique em Install Product Documentation parainstalar o MSDN

Page 12: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 12/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

12 

9. Ao aparecer a tela de instalação do MSDN,clique em Next .

10. Clique na opção I accept terms of theLicense Agreement para aceitar a licença de usoda Microsoft, e depois clique em Next .

11. Digite suas informações.

12. Selecione a instalação completa (Full) e clique

em Next.

Page 13: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 13/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

13 

13. Escolha o diretório de instalação (pode deixaro padrão) e clique em Next .

14. Clique em Install.

15. A instalação começa

16. Ao finalizar a instalação feche a janela.

A tela inicial da instalação é mostrada novamente,mas desta vez basta sair (clicar em Exit ), pois o

Visual Studio e sua documentação já estãoinstalados.

17. É importante também instalar os servicepacks para o VS. Você pode usar o Microsoft Update para tanto, ou instalar diretamente do

DVD que acompanha a apostila.

Page 14: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 14/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

14 

Na raiz do DVD, execute (duplo clique) o arquivoVisual Studio SP1.exe.

18. Clique em OK na 2ª tela e logo depois cliqueem I accept . O SP1 se auto instalará e depois

basta clicar em OK novamente ao final dainstalação.

INSTALANDO COMPONENTES ADICIONAIS

Uma das grandes vantagens da plataforma .NET é a extensa variedade de objetos complementares quepodem ser reutilizados em seus projetos de desenvolvimento. Os objetos vão desde componentesvisuais que melhoram a interface de sua aplicação, até modelos e frameworks de negócios que facilitamo desenvolvimento de projetos complexos.

Esse tipo de modelo de extensão por meio de componentes (que já existia na época do Delphi) é umgrande aliado da plataforma, o que a distingue enormemente dos demais (a proporção de componentesexistentes para plataforma .NET em comparação a outras plataformas como Java, é maior que a

proporção de computadores com Windows Instalado versus Linux).Os principais fornecedores (dentre muitos) desses componentes são:

  Developer Express – http://www.devexpress.com   Component One – http://www.componentone.com   Dundas Software – http://www.dundas.com   Infragistics – http://www.infragistics.com 

Todos eles tem uma versão demo totalmente funcional na qual podem ser utilizados em seu projeto emfase de desenvolvimento. Lógico que ao comercializá-lo, far-se-á necessário o licenciamento do mesmo.

Existem também uma variedade de componentes gratuitos e poderosos disponíveis para download, equem sabe, você mesmo não crie sua suíte de componentes e disponibiliza para outros.

No DVD, na pasta Componentes, temos algumas dessas suítes de componentes que podem serinstalados no seu computador para complementar as funcionalidades já existentes no Visual Studio. Éaltamente recomendável trabalhar com eles, já que diminui muito o tempo de desenvolvimento de umsistema e deixa o mesmo com um aspecto bem mais profissional, o que diminui substancialmente ocusto de um projeto e aumenta a qualidade do mesmo.

Para instalá-los basta executar o pacote correspondente a cada um dos componentes e seguir os passosbásicos para instalação (clicar Next, Next, Next e Install).

Page 15: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 15/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

15 

O VISUAL STUDIO 2005

O Visual Studio 2005, como já foi visto, é um ambiente integrado de desenvolvimento (IDE) para aplataforma .NET. Podemos considerá-lo também uma ferramenta RAD (Rapid ApplicationDevelopment), que nos permite criar aplicações de maneira bem rápida e intuitiva, uma herança doDelphi, já que a equipe que desenvolveu o .NET foi a mesma que outrora desenvolveu o Delphi daBorland.

Com essa IDE podemos:

  Criar e gerenciar projetos  Desenhar janelas , formulários e relatórios  Criar e analisar os códigos fontes de diversas linguagens compatíveis com o .NET

  Executar e depurar aplicações para Desktop, Web, PocketPC, SmartPhone e lógico, paraambientes corporativos

  Gerenciar banco de dados e  Colaboração entre equipe de desenvolvimento, testes, gerentes e arquitetos de software

Para entender melhor a IDE, vamos explicá-la com detalhes:

O Visual Studio (VS) é divido em vários módulos, dentre os principais podemos citar:

Page 16: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 16/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

16 

MENU PRINCIPAL

Todas as ações que o VS pode executar, é acessível pelo Menu Principal, desde a criação de um projeto,seu acompanhamento (gerenciamento), até a sua distribuição.

Para acessar o Menu Principal, basta selecionar o item desejado com o mouse ou usar teclas de atalhocorrespondentes a cada item de menu. Com a tecla Alt+[Letra sublinhada no menu], acessamosdiretamente o item menu indicado.

BARRA DE ATALHOS

As funções mais comuns do Menu Principal, tem um equivalente na Barra de Atalhos, que é umamaneira mais fácil de ser acionada (com apenas um clique).

Nem todas as barras de atalhos estão visíveis por padrão, apenas as principais, dado um determinadocontexto (quando estamos codificando um programa as barras apresentadas podem ser diferentesquando estamos desenhando uma janela).

Para verificar todas as barras de atalhos disponíveis e poder visualizá-las ou não, basta ir no menuView, no item ToolBars e selecionar as Barras de Atalhos que gostaria que estivesse disponíveis.

SOLUTION EXPLORER

É o local onde gerenciamos todos nossos projetos, seus arquivos e configurações. Podemos dizer que oSolution Explorer está para os projetos de desenvolvimento tanto quanto o Windows Explorer está para

os arquivos e recursos do Windows.

O conceito de Solution é usado pela Microsoft para definir um conjunto de projetos, seja ele dedesenvolvimento, de banco de dados, de testes ou de distribuição.

Para visualizar essa janela (caso ela não esteja visível), basta ir no menu View e selecionar Solution

Explorer, ou usar a tecla de atalho Crtl+W+S.

Page 17: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 17/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

17 

Como exemplo, podemos verificar na figura que:

  temos uma Solution chamado Sistemas,  que esses sistemas então subdivididos em Pastas

(sistemas para a Fatec, sistemas para São Lucas,Frameworks de desenvolvimento e Projetos comerciais),

  que cada pasta pode ser subdividida em quantaspastas forem necessárias e

  que uma pasta pode armazenar Projetos deDesenvolvimento e outros tipos de projetos.

Em um Projeto temos toda uma estrutura de pastas earquivos, só que totalmente relacionadas a aquele projeto, quepode ser um:

  arquivo de código fonte,  um arquivo de layout de página web,  uma imagem,  um arquivo de propriedades, ou  qualquer outro tipo de arquivo que venha fazer parte

desse projeto.

Ilustrando melhor, o item marcado na figura ao lado é umarquivo de código fonte feito em C# chamado Funcionario.cs,que pertence ao projeto Funcionário, que está dentro de umapasta chamada POO, que está dentro de Fatec, que está

dentro de Faculdades e que pertence a Solution Sistemas.

PROPERTIES WINDOW

Como toda a programação .NET é baseada em Orientação a Objetos, e os objetos por definição tem

características (propriedades) e apresenta um determinado comportamento (executam ações dado umadeterminada circunstância/evento), a janela Properties Windows tem como objetivo mostrar aspropriedades de cada objeto pertencente ao Sistema e gerenciar todos os eventos na qual esse objetopoderá responder.

Para visualizar essa janela (caso ela não esteja visível), basta ir no menu View e selecionar Properties

Window, ou usar a tecla de atalho Crtl+W+P.

Page 18: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 18/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

18 

Ao trabalhar na área de design (desenho) do seusistema, essa janela do Visual Studio se faz de extremaimportância, dado que cada componente visual de umajanela ou página web é na verdade um objeto, ealterando as características e comportamento desseobjeto, podemos determinar como nossa aplicaçãoserá tanto em termos de interface (determinadobasicamente pelas características dos objetos) quantoem termos de funcionalidade (terminado basicamentepelas ações que os objetos executam dado umdeterminado evento).

Na janela ao lado estamos vendo as propriedades deum objeto/componente visual. O objeto em questão sechama Principal e é do tipo (ou classe já que falamosde OO) DevExpress.XtraBars.Ribbon.RibbonForm. Essa

informação pode ser visualizada na parte de cima dajanela Properties.

O nome do objeto é dado pela propriedade (Name)para programas do tipo desktop ou (ID) paraprogramas Web.

Percebemos também que as propriedades estãocategorizadas, como exemplo acima, a propriedade(Name) está na categoria Design (Desenho).

Temos outras categorizações, como propriedadesespecíficas para aparência (Appearance),propriedades para comportamento (Behavior), paravinculação de dados (Data), entre muitas outrascategorias que variam de objeto para objeto.

Caso você deseje que essas propriedades fiquem em ordem alfabética em vez de categorizadas, bastaclicar em ou clicar em para voltar a ficar categorizadas.

Como foi falado anteriormente, na janela Properties também pode-se visualizar aspectos relacionadosao comportamento do objeto. Nessa janela, mais especificamente o comportamento é definido peloseventos que um objeto pode tratar, e quando um desses eventos ocorre podemos relacionar uma ação aser executada com um desses eventos

Como exemplo pode-se imaginar no que vai acontecer (ação) quando clicarmos com o mouse

(evento) em cima dessa janela.

Para visualizar os eventos tratados por esse objeto em questão, basta clicar em , e caso deseje voltara visualizar as propriedades, clique em .

Page 19: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 19/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

19 

TOOLBOX

O Visual Studio é considerado uma ferramenta RAD (RapidApplication Development), que permite criar aplicações demaneira rápida, e isso se dá em grande parte pelo uso decomponentes (objetos) das mais diversas finalidades etotalmente funcionais.

Existem componentes para:

  Criação de interface com o usuário;  Controle de segurança;  Comunicação e interoperabilidade de sistemas;  Acesso a Banco de Dados;  Entre milhares de outros.

E a maioria deles, para ser usado, basta clicar no componentedesejado, arrastar para a sua aplicação e soltar na posiçãodesejada, muito simples. Depois é necessário configurar aspropriedades e eventos a serem usados para personalizar suaaplicação.

Além disso, você pode criar seus próprios componentes, oumodificar os já existentes para atender as suas necessidades, eisto aumenta ainda mais o número de componentes disponíveis(já foi falado aqui de algumas das suítes de componentes maisfamosas para desenvolvimento .NET).

Os componentes instalados na sua aplicação estão disponíveisna janela Toolbox, e essa janela pode ser totalmenteconfigurada para mostrar os componentes que você maisutiliza, podendo agrupá-los ou não de acordo com a figura aolado.

Para visualizar essa janela (caso ela não esteja visível), basta irno menu View e selecionar Toolbox, ou usar a tecla de atalhoCrtl+W+X.

Dependendo do tipo de aplicação que esteja trabalhando, seja

web, desktop ou compact, (aplicações que utilizam o .NETCompact Framework, específico para PocketPCs eSmartPhones/Celulares) os componentes disponibilizados (e visíveis) podem ser diferentes, já que nemtodos os componentes funcionam em todas essas plataformas. Por isso, os componentesdisponibilizados são somente aqueles que funcionariam na aplicação em que está trabalhando nomomento.

AREA DE TRABALHO

Page 20: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 20/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

20 

É o local onde visualizamos e modificamos o layout de um sistema ou seu código fonte. É a parteprincipal do Visual Studio, onde permite aos programadores, analistas, gerentes de projeto,administradores de banco de dados, arquitetos de software, entre outros a interagir com o ambientepara criar soluções em projetos de desenvolvimento de sistemas.

Na área de trabalho pode-se visualizar:

Start Page

Quando iniciamos o VS, uma Página Inicial (Start Page) é mostrada na área de trabalho. Nessa páginapodemos visualizar:

  os projetos que você trabalhou ultimamente (Recent Projects),  um tutorial (em Inglês) de uso do VS (Getting Started),  as últimas notícias do MSDN (Microsoft Developer Network),  entre outras informações que podem ser personalizadas.

Caso essa página não esteja disponível, clique em View, depois em Other Windows e selecione Start 

Page.

Page 21: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 21/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

21 

 Aplicação em modo de Design

Boa parte de um projeto de desenvolvimento envolve a definição da interface com o usuário. Com oVisual Studio, pode-se visualizar, mesmo no momento do desenvolvimento, uma interface exatamenteigual ao que será apresentada ao usuário final (tecnologia WYSIWYG – What You See Is What You Get).

Na janela acima temos muitos componentes visuais, que serão apresentados exatamente iguais aousuário quando o programa for executado.

Entretanto, em modo de desenvolvimento, componentes não visuais também são vistos para poderemser editados. É o caso do componente chamado Estilo (abaixo da figura). Componentes não visuaisestarão disponibilizados na área abaixo da janela e somente são visíveis no modo de desenvolvimento enão em execução.

Page 22: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 22/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

22 

 Aplicação em modo de Codificação

Um sistema certamente tem uma lógica de programação por traz dele, codificado em uma determinadalinguagem, que no nosso caso é o C# (C Sharp).

Assim como pode-se ver uma janela em modo de desenho (exemplo anterior), pode-se visualizar todo ocódigo fonte por traz daquela interface, o código que representa toda a funcionalidade de sua aplicação(nesse caso da janela).

Caso o exemplo mostrado fosse de um projeto para Web, também seria possível visualizar o códigoHTML por traz de cada página Web.

Para mais detalhes assista o vídeo 01 – Apresentando o Visual

Studio que está no DVD que acompanha a apostila dentro da pasta

Vídeos.

Page 23: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 23/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

23 

A LINGUAGEM C#

Nas últimas duas décadas, C e C++ foram as linguagens mais amplamente usadas para odesenvolvimento de software comercial e de negócios. Embora as duas linguagens proporcionem aoprogramador uma quantidade enorme de controle granular, esta flexibilidade possui um custo para aprodutividade. Comparadas com uma linguagem como o Microsoft® Visual Basic®, aplicações C e C++equivalentes freqüentemente demoram mais para serem desenvolvidas. Devido a complexidade elongos tempos de ciclo associados a essas linguagens, muitos programadores C e C++ vêm procurandouma linguagem que ofereça um melhor balanceamento entre poder e produtividade.

Existem linguagens atualmente que aumentam a produtividade sacrificando a flexibilidade queprogramadores C e C++ freqüentemente demandam. Tais soluções restringem demais o desenvolvedor(por exemplo, omitindo um mecanismo para controle de código de baixo nível) e proporcionamcapacidades do menor denominador comum. Elas não interoperam facilmente com sistemas pré-existentes, e nem sempre combinam bem com as práticas de programação Web atuais.

A solução ideal para programadores C e C++ seria o desenvolvimento rápido combinado ao poder deacesso a funcionalidade total da plataforma básica. Eles desejam um ambiente totalmente sincronizadocom os padrões Web emergentes que proporcione a fácil integração com as aplicações existentes.Adicionalmente, desenvolvedores C e C++ gostariam de ter a habilidade de codificar em baixo nívelquando e se a necessidade aparecer.

A solução Microsoft para este problema é uma linguagem chamada C#. C# é uma moderna linguagemorientada a objeto que habilita os programadores a construir rapidamente uma ampla gama deaplicações para a nova plataforma Microsoft .NET, a qual proporciona ferramentas e serviços queexploram totalmente a computação e as comunicações.

Devido ao seu elegante projeto orientado a objeto, C# é uma escolha excelente para arquitetar umaampla gama de componentes – de objetos de negócio de alto nível a aplicações no nível do sistema.Usando construções de linguagem C# simples, estes componentes podem ser convertidos em serviçosWeb, permitindo que eles sejam invocados pela Internet, a partir de qualquer linguagem rodando emqualquer sistema operacional.

Principalmente, C# é projetado para trazer desenvolvimento rápido para o programador C++ semsacrificar o poder e o controle que têm sido a característica fundamental do C e C++. Devido a estaherança, C# possui um alto grau de fidelidade com C e C++. Desenvolvedores familiarizados com estaslinguagens podem se tornar produtivos em C# rapidamente.

HISTÓRIA DA LINGUAGEM

A linguagem C# foi criada junto com a arquitetura .NET. Embora existam várias outras linguagens quesuportam essa tecnologia (como VB.NET, C++, J#), C# é considerada a linguagem símbolo do .NET pelasseguintes razões:

  Foi criada praticamente do zero para funcionar na nova plataforma, sem preocupações decompatibilidade com código de legado.

  O compilador C# foi o primeiro a ser desenvolvido.  A maior parte das classes do .NET Framework foram desenvolvidos em C#.

O criação da linguagem, embora tenha sido feita por vários desenvolvedores, é atribuída principalmentea Anders_Hejlsberg , hoje um “Distinguished Engineer” na Microsoft. Anders Hejlsberg era

Page 24: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 24/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

24 

desenvolvedor de compiladores na Borland, e entre suas criações mais conhecidas estão o Turbo Pascale o Delphi.

Criação do Nome

Muitos pensam que o nome C# viria de uma sobreposição de 4 símbolos "+" dando a impressão de"++++". Na verdade o "#" de C# refere-se ao sinal musical, que aumenta um tom denotado por uma letra(entre A e G) pela metade de um tom. O símbolo real seria o ♯ e não o #, porém, devido a limitação detelas, fontes e alguns browsers, no momento da normalização junto a ECMA, fora especificado apenasque o nome da linguagem seria uma letra C maiúscula (U+0043) e o sinal "#" (U+0023), facilitandoassim, publicações e artigos com um caracter encontrado facilmente dos layouts de teclado padrões.

Normalização

A Microsoft submeteu o C# a ECMA para uma padronização formal. Em Dezembro de 2001 a ECMAliberou a especificação ECMA-334 Especificação da Linguagem C#. Em 2003 tornou-se uma padrão ISO(ISO/IEC 23270). Há algumas implementações em desenvolvimento, destacando:

  Mono, implementação open source da Ximian.  dotGNU e Portable.NET da Free Software Foundation.  Delphi 2005 da Borland.

Recentemente a Microsoft anunciou planos de adicionar o suporte a tipos parciais, generics e outrascaracterísticas. A padronização pela ECMA/ISO destas características foi solicitada, mas ainda não sãoparte da versão padrão da linguagem.

Política

Muitos dos produtos e iniciativas da Microsoft geram polêmica no campo político e a criação e desenhoda C# não foi excepção. Devido à natureza fechada da C# com uma instituição comercial, a discussãopolítica continua em relação à legitimidade da sua normalização, as suas semelhanças com Java, o seufuturo como uma linguagem para uso generalizado e outros assuntos. Alguns peritos em segurançaencontram-se cépticos em relação à eficácia do mecanismo de segurança do CLR e criticam a suacomplexidade.

Ao contrário de linguagens proprietárias tal como a Visual Basic, a Microsoft optou por submeter a C# aum processo de normalização. No entanto, a Microsoft continua a ser a principal força a induzirmudanças e inovação na linguagem. Além disso, a Microsoft tornou bem claro que a C#, tal como outras

linguagens .NET, é uma parte importante da sua estratégia de software, tanto para uso interno e paraconsumo externo. A Microsoft leva a cabo um papel ativo em descrever a linguagem como umacomponente da sua estratégia global de negócios.

CARACTERÍSTICAS

C# (pronuncia-se "cê chárp" em português ou "cí charp" em inglês) é, de certa forma, a linguagem deprogramação que mais diretamente reflete a plataforma .NET sobre a qual todos os programas .NETexecutam. C# está de tal forma ligado a esta plataforma que não existe o conceito de código não-

gerenciado (unmanaged code) em C#. Suas estruturas de dados primitivas são objetos quecorrespondem a tipos em .NET. A desalocação automática de memória por garbage colletor além de

Page 25: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 25/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

25 

várias de suas abstrações tais como classes, interfaces, delegados e exceções são nada mais que aexposição explicita dos recursos do ambiente .NET.

Quando comparada com C e C++, a linguagem é restrita e melhorada de várias formas incluindo:

  Ponteiros e aritmética sem checagem só podem ser utilizados em uma modalidade especialchamada modo inseguro (unsafe mode). Normalmente os acessos a objetos é realizada atravésde referências seguras, as quais não podem ser invalidadas e normalmente as operaçõesaritméticas são checadas contra sobrecarga (overflow).

  Objetos não são liberados explicitamente, mas através de um processo de coleta de lixo(garbage collector) quando não há referências aos mesmos, prevenindo assim referênciasinválidas.

  Destrutores não existem. O equivalente mais próximo é a interface Disposable, que juntamentecom a construção using block permitem que recursos alocados por um objeto sejam liberadosprontamente. Também existem finalizadores, mas como em Java sua execução não é imediata.

  Como em Java, só é permitida a herança simples, mas uma classe pode implementar várias

interfaces abstratas. O objetivo principal é simplificar a implementação do ambiente deexecução.

  C# é mais seguro com tipos que C++. As únicas conversões implícitas por default são conversõesseguras, tais como ampliação de inteiros e conversões de um tipo derivado para um tipo base.Não existem conversões implícitas entre inteiros e variáveis lógicas ou enumerações. Nãoexistem ponteiros nulos (void pointers) (apesar de referências para Object serem parecidas). Equalquer conversão implícita definida pelo usuário deve ser marcada explicitamente,diferentemente dos construtores de cópia de C++.

  A sintaxe para a declaração de vetores é diferente ("int[] a = new int[5]" ao invés de "int a[5]").  Membros de enumeração são colocados em seu próprio espaço de nomes (namespace)  C# não possui modelos (templates), mas C# 2.0 possui genéricos (generics).  Propriedades estão disponíveis, as quais permitem que métodos sejam chamados com a mesma

sintaxe de acesso a membros de dados.  Recursos de reflexão completos estão disponíveis

Apesar de C# ser freqüentemente tido como similar a Java, existem uma série de diferençasimportantes, tais como:

  Java não implementa propriedades nem sobrecarga de operadores.  Java não implementa um modo inseguro que permita a manipulação de ponteiros e aritmética

sem checagem.  Java possui exceções checadas, enquanto exceções em C# são não checadas como em C++.  Java não implementa o goto como estrutura de controle, mas C# sim.  Java utiliza-se de comentários Javadoc para gerar documentação automática a partir de

arquivos fonte. C# utiliza comentários baseados em XML para este propósito.  C# suporta indexadores e delegados.

Produtividade e Segurança

A nova economia Web – onde os concorrentes estão a apenas um clique de distância – está forçando asempresas a responder aos desafios competitivos mais rapidamente do que nunca. Desenvolvedores sãochamados para diminuir tempos de ciclo e produzir revisões mais incrementais de um programa, aoinvés de uma única versão monumental.

Page 26: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 26/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

26 

C# é projetado com estas considerações em mente. A linguagem é projetada para ajudar osdesenvolvedores a fazer mais com um número menor de linhas de código e menos oportunidades deerro.

 Abraça os padrões emergentes de programação Web

O novo modelo para desenvolvimento de aplicações significa que mais e mais soluções requerem o usode padrões Web emergentes tais como Hypertext Markup Language (HTML), Extensible MarkupLanguage (XML) e Simple Object Access Protocol (SOAP). Ferramentas de desenvolvimento existentesforam desenvolvidas antes da Internet ou quando a Web conforme nós a conhecemos hoje estava na suainfância. Como resultado, elas nem sempre proporcionam a melhor forma de trabalhar com as novastecnologias Web.

Programadores C# podem utilizar um framework extensivo para construção de aplicações naplataforma Microsoft .NET. C# inclui suporte pré-construído para transformar qualquer componenteem um serviço Web que pode ser invocado pela Internet  – a partir de qualquer aplicação rodando em

qualquer plataforma.

O que é ainda melhor, o framework dos serviços Web pode tornar os serviços Web existentes iguais aobjetos C# nativos para o programador, permitindo assim que os desenvolvedores utilizem os serviçosWeb existentes com as habilidades de programação orientada a objeto que eles já possuem.

Existem mais recursos sutis que tornam o C# uma excelente ferramenta de programação Internet. Porexemplo, o XML está emergindo como a forma padrão de passar dados estruturados pela Internet, quefreqüentemente são muito pequenos. Para performance melhorada, C# permite que os dados XMLsejam mapeados diretamente em um tipo de dados struct ao invés de uma classe. Esta é uma formamais eficiente de tratar pequenas quantidades de dados.

Elimina erros de programação de alto custo

Mesmo os programadores C++ mais experientes podem cometer o mais simples dos erros – esquecer deinicializar uma variável, por exemplo – e freqüentemente estes erros simples resultam em problemasnão previstos que podem permanecer não descobertos por longos períodos de tempo. Uma vez que umprograma está em uso na produção, pode ser muito custoso corrigir mesmo o mais simples erro deprogramação.

O projeto moderno do C# elimina os erros de programação C++ mais comuns. Por exemplo:

  Garbage collection libera o programador da sobrecarga do gerenciamento de memória manual.  Variáveis no C# são inicializadas automaticamente pelo ambiente.  Variáveis são type-safe.

O resultado final é uma linguagem que torna bem mais fácil para os desenvolvedores escrever e manterprogramas que resolvem problemas de negócio complexos.

Reduz os custos de desenvolvimento do dia a dia com suporte pré-construído para versioning

Atualização de componentes de software é uma tarefa com alta probabilidade de erro. Revisões feitasno código podem alterar não intencionalmente a semântica de um programa existente. Para auxiliar odesenvolvedor neste problema, C# inclui o suporte a versioning na linguagem. Por exemplo, a

sobrescrita de método deve ser explícita; ela não pode acontecer de forma inadvertida como no C++ ouJava. Isto ajuda a evitar erros de codificação e preserva flexibilidade de versioning. Um recurso

Page 27: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 27/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

27 

relacionado é o suporte nativo para interfaces e herança de interface. Estes recursos habilitamframeworks complexos a serem desenvolvidos e evoluídos com o tempo.

Em conjunto, estes recursos tornam mais robusto o processo de desenvolvimento de versõesposteriores de um projeto, reduzindo assim os custos gerais de desenvolvimento para as versões

sucessivas.

Melhor mapeamento entre processos de negócio e implementação

Com o alto nível de esforço gasto pelas corporações no planejamento de negócio, é imperativo ter umforte conexão entre os processos abstratos de negócio e a implementação real de software. Mas amaioria das ferramentas de linguagem não possui uma forma fácil de unir lógica de negócio ao código.Por exemplo, os desenvolvedores provavelmente utilizam comentários de código hoje em dia paraidentificar quais classes formam um objeto de negócio abstrato particular.

A linguagem C# permite metadados extensíveis typed que podem ser aplicados a qualquer objeto. Um

arquiteto de projeto pode definir atributos específicos de domínio e aplicá-los a quaisquer classes deelemento da linguagem, interfaces e assim por diante. O desenvolvedor pode então examinar viaprogramação os atributos de cada elemento. Isto torna fácil, por exemplo, escrever uma ferramentaautomatizada que garantirá que cada classe ou interface está identificada corretamente como parte deum objeto de negócio particular, ou simplesmente criar relatórios com base nos atributos específicos dedomínio de um objeto. A forte união entre os metadados customizados e o código do programa ajuda afortalecer a conexão entre o comportamento pretendido do programa e a implementação real.

Interoperabilidade extensiva

O ambiente type-safe gerenciado é apropriado para a maioria das aplicações corporativas. Mas a

experiência mostra que algumas aplicações continuam a exigir código "nativo", ou por razões deperformance ou para interoperar com interfaces de programação de aplicação (APIs) existentes. Estescenários podem forçar os desenvolvedores a usar C++ mesmo quando eles prefeririam usar umambiente de desenvolvimento mais produtivo.

C# endereça estes problemas da seguinte forma:

  Incluindo suporte nativo para o Component Object Model (COM) e APIs baseadas emWindows®.

  Permitindo o uso restrito de ponteiros nativos.

Com C#, cada objeto é automaticamente um objeto COM. Desenvolvedores não têm mais que

implementar explicitamente interfaces IUnknown e outras interfaces COM. Ao invés disto, estesrecursos são pré-construídos. De forma similar, programas C# podem usar nativamente objetos COMexistentes, independente da linguagem usada para sua criação.

Para os desenvolvedores que precisam disto, C# inclui um recurso especial que habilita um programa achamar qualquer API nativa. Dentro de um bloco de código marcado especialmente, desenvolvedorespodem usar ponteiros e recursos C/C++ tradicionais tais como memória gerenciada manualmente earitmética de ponteiro. Esta é uma enorme vantagem sobre os outros ambientes. Isto significa queprogramadores C# podem construir sobre sua base de código C e C++ existente, ao invés de descartá-la.

Nos dois casos – suporte a COM e acesso API nativo – a intenção é proporcionar ao desenvolvedor o

poder e o controle essenciais sem ter que deixar o ambiente C#.

Page 28: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 28/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

28 

Bibliotecas de código

Ao contrário das outras linguagens de programação, nenhuma implementação de C# atualmente incluiqualquer conjunto de bibliotecas de classes ou funções. Ao invés disso, C# está muito vinculada aoframework .Net, do qual C# obtém suas classes ou funções de execução. O código é organizado em um

conjunto de namespaces que agrupam as classes com funções similares. Por exemplo:

  System para os tipos e estruturas básicos,  System.Console para aplicações de entrada e saída,  System.Drawing para gráficos,  System.Collections para estrutura de dados e  System.Windows.Forms para o sistema Windows Form.  E muitas outras bibliotecas.

Um nível de organização superior é fornecido pelo conceito de montador (assembly). Um montadorpode ser um simples arquivo ou multiplos arquivos ligados que podem conter muitos namespaces ou

objetos. Programas que precisam de classes para realizar uma função em particular podem sereferenciar a montadores como System.Drawing.dll e System.Windows.Forms.dll assim como abiblioteca core (conhecida como mscorlib.dll na implementação da Microsoft).

Page 29: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 29/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

29 

ESTRUTURAS DA LINGUAGEM

Nesse capítulo, iremos introduzir a linguagem C# básica (sem uso de orientação a objeto) através dealguns exemplos simples.

O aluno deve entender, neste momento, que C# é apenas uma outra linguagem de programação, assimcomo C, Pascal, Basic, Fortran, Cobol.

Queremos ver como C# trata:

  Tipos básicos  Constantes  Decisões  Laços

Veremos também como criar, compilar e executar programas usando o Visual Studio. Observe que nãoveremos chamadas de sub-programas (subrotinas ou funções) aqui, este assunto é bem diferente emC#, devido à orientação a objeto, e será visto à frente.

Importante! Você é responsável por aprender detalhes adicionais da linguagem C#. O que faremos emaula não é uma cobertura completa da linguagem.

CRIANDO UMA SOLUÇÃO

Nas IDEs mais novas, como o Visual Studio (VS), o conceito de programa é estendido para Projeto deDesenvolvimento, logo, para você criar um programa, deve-se primeiro, criar um Projeto que vaiagregar seu sistema.

O VS além do conceito de Projetos, tem também o conceito de Solução, que nada mais é do que umconjunto de projetos. No exemplo que vamos dar, vamos criar uma Solução que vai levar seu nome, evamos dividir essa solução em 3 partes, projetos do tipo Console, do tipo Windows e do Tipo Web.

Para tanto:

1. Abra o Visual Studio

2. Selecione o menu File | New | Project  

Page 30: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 30/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

30 

3. Na área chamada Project Types, vá em Other

Project Types | Visual Studio Solutions eselecione Blank Solution.

4. Na área chamada Name coloque seu nome (ou

qualquer outro nome que identifique todos osprojetos que você irá criar). No meu caso, informeiLiluyoud.

5. Na área Location, informe a pasta onde vocêgostaria que seus projetos fossem criados. No meucaso, informei C:\. 

6. Em cima da sua Solution, clique com o botãodireito do mouse, selecione  Add | New Solution Folder para criar uma pasta na Solução.

  Crie a pasta chamada Console paraaplicações simples e sem interface gráfica

  Crie a pasta chamada Windows paraaplicações Desktop (baseado em janelas)

  Crie a pasta chamada Web paraaplicações para Web

Apesar de termos criado 3 pastas na solução,essa divisão é lógica apenas.

Se você verificar dentro do diretório da solução(no nosso caso C:\Liluyoud), você verá que

nenhuma pasta foi criada (particularmente achouma falha do VS).

7. Para que a solução represente exatamente oseu sistema de arquivos, vá no WindowsExplorer e crie essas 3 pastas (com o mesmonome) dentro do diretório criado para suasolução (no nosso caso C:\Liluyoud).

CRIANDO O PROGRAMA ALO MUNDO

Page 31: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 31/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

31 

Para “variar”, nosso primeiro programa será o Alo Mundo.

O objetivo principal desse programa não é mostrar a mensagem Alo Mundo para o usuário, o objetivo éapresentar o ambiente de desenvolvimento que você usará, mostrando como se cria um programa(projeto), assim como compilar, executar, salvar e recuperar o mesmo.

Como o objetivo dessa sessão é apenas mostrar aspectos da linguagem C#, todos os projetos quecriaremos aqui serão do tipo Console e, portanto estarão dentro da pasta Console. Um programa dotipo Console é um programa que não apresenta interface gráfica, não contém janelas ou qualquer outrocomponente visual, apenas lógica de programação.

Para criá-lo, basta seguir os seguintes passos:

1. Selecione a pasta Console

2. Clique com o botão direito do mouse em cimada pasta Console

3. Selecione Add | New Project 

4. Na área Project Types, selecione Visual C# |Windows 

5. Na área Templates, selecione Console

 Application 

6. Na área Name, informe o nome Alo 

7. Na área Location, informe o diretório da suaSolução com a subpasta Console (no nosso caso,C:\Liluyoud\Console).

8. Clique no botão OK para criar o projeto.

Page 32: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 32/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

32 

Depois de criado o projeto, o Solution Explorer se parecerácom a figura ao lado, onde:

  Um projeto chamado Alo foi criado dentro da pastaConsole que pertence a solução Liluyoud.

  O projeto  Alo tem duas pastas chamadasProperties e References (cujos objetivos serãoabordadas quando necessário).

  O projeto  Alo tem um arquivo chamadoProgram.cs que identifica um código fonte em C#(a extensão .cs se dá devido ao C Sharp).

No conteúdo do arquivo Program.cs está definido uma classe. Agora para criar o programa Alo Mundo,vamos digitar o código de acordo com o mostrado abaixo. As particularidades do código são mostradaspelos balões e explicadas prontamente. Mais informações sobre essa estrutura serão abortadasposteriormente nessa apostila.

1. A cláusula using define quaisbibliotecas de classe o programa iráusar. Equivale a clausula imports doJava. Dificilmente usamos, pois as

principais bibliotecas já sãoimportadas automaticamente.

2. A cláusula namespace define oespaço de nomes do seu programa. Éusado para dividir logicamente osmódulos de seu sistema. Por padrão onamespace tem o mesmo nome doprojeto, mas pode-se mudar paraatender suas especificações. Veremosmais detalhes sobre namespaces

quando trabalharmos com umaaplicação um pouco mais complexa.

3. Todo programa Orientado a Objetostem classes definidas (mais detalhes na sessão de Orientação a Objetos dessa apostila). Quando criamosum projeto, é criada uma classe padrão chamada Program, que identifica o ponto inicial de execução deuma aplicação (Console ou Windows). Perceba que a classe tem o mesmo nome do arquivo criado paraidentificá-la, por padrão o nome é Program. Você pode renomear a classe sem problemas, mas nãoesqueça de renomear o arquivo também.

4. Na classe Program temos um método (conceito a ser abordado na Orientação a Objetos) chamadoMain que identifica a primeira ação a ser executada pelo programa. Logo, se quisermos que o programa

execute alguma ação primeiramente, basta colocar os comandos dentro desse método que sãodelimitados por { e }.

1

4

5

6

23

Page 33: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 33/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

33 

Os comandos colocados dentro do métodos são dois:

5.  Console.WriteLine ( ): é um comando que permite escrever qualquer informação no Console desaída do programa, que nesse caso é o monitor por padrão. Esse comando pode nesse programaescreverá uma palavra que é delimitada por aspas duplas, que no exemplo é “Alo Mundo!”. 

6. Console.ReadLine ( ): é um comando que permite ler qualquer informação do Console de Entrada doprograma, que nesse caso é o teclado do usuário por padrão. Mas nesse programa ele é usado paraoutro objetivo que é esperar o usuário digitar alguma coisa para poder finalizar o programa. Fazemosisso nesse caso, porque senão o programa será executado tão rápido que não conseguiremos visualizara saída do mesmo..

ESTRUTURAS BÁSICAS

Antes de começarmos a criar algoritmos complexos, vamos conhecer algumas estruturas simples quesão usadas no C# (assim como em outras linguagens, mas com sintaxe diferente) que são:

  Comentários  Blocos de comandos  Variáveis e seus Tipos  Conversão de Tipos  Comandos de Escrita e Leitura

Comentários

Criar comentários em seu código fonte é muito importante, já que possibilita um entendimento melhordos algoritmos ali implementados. Os comentários na hora da compilação são ignorados, por isso vocêpode usar (e não abusar) deles.

  Podemos usar comentários para:  Identificar o responsável e data de criação daquele código  Identificar todas as alterações feitas no código, seus responsáveis e datas de alteração  Identificar o objetivo daquele código  Explicar de maneira mais fácil a lógica de seu algoritmo

  Entre muitos outros, inclusive para a documentação profissional de seu código fonte através demarcadores XML (semelhante ao mecanismo javadoc do Java).

Os tipos de comentários são:

  /* */ : Textos delimitados por essa seqüência de caracteres ficam todos comentados mesmoque o texto contenha mais de uma linha.

  // : Texto com essa seqüência de caracteres na frente dele viram comentário de uma única linha  /// : Texto com essa seqüência de caracteres na frente dele viram comentário para

documentação XML

Para mostrar a funcionalidade da documentação de seu código inserindo esses 3 tipos de comentários,

vamos alterar o programa Alo Mundo:

Page 34: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 34/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

34 

/* Programa Alo Mundo

* Autor: Lilluyoud Cury de Lacerda

* Data de Criação: 27/03/2007

*

* Objetivo: Criar um programa para mostrar uma mensagem na tela

*/

using System;

using System.Collections.Generic;

using System.Text;

namespace Alo {

/// <summary>

/// A classe Program é uma classe criada automaticamente pelo VS e serve

/// para executar o programa a ser desenvolvido

/// </summary>

class Program {

/// <summary>

/// Método que define quais acões serão executados primeiramente 

/// quando o programa for executado/// </summary>

/// <param name="args">Um conjunto de parâmetros do tipo string que podem ser 

/// passados ao programa 

/// </param>

static void Main(string[] args) {

// Escreve Alo Mundo! no monitor

Console.WriteLine("Alo Mundo!");

// Espera que o usuário tecle algo para finalizar a execução do progama

Console.ReadLine();

}

}

}

Blocos de Comando

Todos os comandos em C# tem que terminar com um ponto-e-vírgula ( ; ) e esses comandos tem queestar delimitados por um bloco que tem início e fim, representados no C# pelos caracteres abre-chaves( { ) que define o início do bloco e fecha-chaves ( } ) que define o fim do bloco.

O namespace precisa ser delimitado com um início e fim, no caso com { e }, assim como o classe e ométodo Main. Outras estruturas també precisam ser delimitadas, e que serão vistas ao longo daapostila.

Por essa delimitação sabemos que a o método Main está dentro da classe Program que esta dentro donamespace Alo.

Por padrão o Visual Studio fecha as chaves na mesma coluna onde ela foi aberta, mas podemosconfigurar para o padrão usado no Java, onde abrimos as chaves logo após o comando que abre ela efechamos a mesma coluna que o comando foi iniciado, como exemplo:

Modelo padrão do C# Modelo padrão do Javanamespace Alo{

class Program  {

static  void Main(string[] args){}

}}

namespace Alo {

class Program {

static void Main(string[] args) {

}

}

}

Page 35: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 35/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

35 

A endentação em ambos os casos é importantíssimo, onde um bloco de comando que esteja dentro deoutro bloco, deve estar alinhado pelo menos com 3 espaços para dentro (ou um tab como usado no VS).

Variáveis e Tipos de Dados

Uma variável consiste em um elemento ao qual lhe damos um nome e lhe atribuímos um determinadotipo de informação, quer dizer, variáveis são estruturas que possibilitam armazenar valores e seremmodificados e recuperados a contento. As variáveis podem ser consideradas como a base daprogramação.

Deste modo poderíamos escrever em uma linguagem fictícia:

a = "C# "

b = "é fácil"

A variável que nós chamamos "a" possui um elemento de informação de tipo texto que é "cachorro".Assim como, a variável "b" contém o valor "morde". Poderíamos definir uma terceira variável que fossea soma destas duas:

c = a + b

Se introduzíssemos uma petição de impressão desta variável em nossa linguagem fictícia:

imprimir(c)

O resultado poderia ser:

C# é facil

Poderíamos da mesma forma trabalhar com variáveis que contivessem números:

a = 3

b = 4

c = a + b

imprimir(c)

O resultado de nosso programa seria:

7

Como podemos observar, as variáveis tem um tipo que podem ser alem de números e textos, tiposbooleanos, vetores, tipos complexos (classes na Orientação a Objetos), entre outros. Além disso,percebe-se que valores textuais são delimitados por aspas duplas, já valores numéricos não precisam.

Em ciência da computação tipos de variáveis ou dados é um nome para uma combinação de valores e dealgumas operações que uma variável pode executar, podem variar conforme o sistema operacional e alinguagem de programação e são utilizados para indicar ao compilador ou interpretador as conversõesnecessárias para obter os valores em memória durante a construção do programa. Por outro lado,ajudam também o programador a detectar eventuais erros.

Page 36: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 36/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

36 

Dependendo da linguagem de programação o tipo de um dado é verificado diferentemente, de acordocom a análise léxica, sintática e semântica do compilador ou interpretador da linguagem. Os tipos têmgeralmente associações com valores na memória ou com objetos (para uma linguagem orientada aobjeto) ou variáveis.

Tipos de dados primitivos são tipos que tem tamanho fixo e sempre apresentam um valor padrão, alémde serem armazenados na pilha do programa para acesso rápido. Os tipos primitivos do C# são:

Tipo Tamanho Mínimo Máximo Valor padrão

bool 1 bit - - Falsechar 16 bits Unicode 0 Unicode 216 - 1 \u0000byte 8 bits 0 255 0short  16 bits -215 +215 - 1 0int  32 bits -231 +231 -1 0long 64 bits -263 +263 - 1 0float  32 bits 1EEE754 1EEE754 0.0double 64 bits 1EEE754 1EEE754 0.0

O tipo string não é primitivo pois não tem tamanho fixo e tem operações específicas associada a ela(string é uma classe). O tipo string serve para armazenar qualquer texto no padrão Unicode.

Em C# para se declarar uma variável primeiro temos que definir o tipo para depois definir o nome davariável e opcionalmente, iniciá-la com algum valor.

Sintaxe:

TipoDeDado nomeDdaVariável [= valorInicial];

Exemplo:

// declaração de uma variável do tipo int (inteiro) com o nome de idade

int idade;

Ou

// declaração de uma variável do tipo int (inteiro) com o nome de idade e iniciada com

// o valor 20

int idade = 20;

Caso tenhamos duas variáveis do mesmo tipo, podemos declarar as duas ao mesmo tempo, apenasseparando-as por vírgulas:

double nota1, nota2, media;

nota1 = 8;nota2 = 7;

media = (nota1 + nota2) / 2;

Ou

double nota1 = 8, nota2 = 7, media = (nota1 + nota2) / 2;

Quanto a nomenclatura das variáveis, o padrão recomendado (não é obrigatório) é:

  Nomes de variáveis não podem abreviadas e devem fornecer um sentido completoCerto: int quantidade; Errado: int qtd;

  Nomes de variáveis devem começar com letra minúscula, e caso o nome seja composto de duas

palavras ou mais, cada nome deve subseqüente ao primeiro deve iniciar com letra maiúscula.Certo: string telefoneComercial; Errado: string TelefoneComercial, telefonecomercial;

Page 37: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 37/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

37 

As variáveis em C# são estáticas (assim como em Java, Pascal, entre outros), isto é, não podem ter tipode dados modificado na sua execução (como o phyton, php etc..., que tem tipos dinâmicos).

No modelo estático, uma variável do tipo numérica em nenhum momento pode receber outro tipo deinformação a não ser tipos numéricos. Já as variáveis dinâmicas podem mudar seu tipo de informação

ao longo da execução de um programa.

Variáveis Estáticas Variáveis dinâmicasnota = 10...nota = “5” // esse código da erro, como a

// variável é numérica, só pode// atribuir valores numéricos a ela

nota = 10

...

nota = “5” // esse código não da erro, a variável

// de numérica vira textual

Outra característica importante também é a necessidade de se declarar uma variável e seu tipopreviamente (como C# e Java) ou apenas usar uma variável e deixar que o compilador atribua em modode execução o tipo da mesma (VBScript, PHP, Phyton, etc...). No primeiro caso damos o nome de

Linguagem Fortemente Tipada e no outro respectivamente, de Linguagem Fracamente Tipada.

Linguagem Fortemente Tipada Linguagem Fracamente Tipadaint notanota = 10

 media = 7 // esse código da erro, pois a// variável média não foi declarada

nota = 10

media = 7 // esse código não da erro, pois não

// é necessário declarar a variável

// previamente

A seguir temos alguns exemplos de declarações de variáveis.

char c = 'a';

char z = '\u0041'; // em unicode

int i = 10;

short s = 1;byte b = 2;

long hexa = 0x3abe5L;

int octal = 0127;

float f = 0.32f;

double d = 12.535;

double g = .1e-23;

bool verdadeiro = true;

bool falso = false;

string palavra = "Oi pessoal";

Conversão de Tipos

Apesar do C# ser baseado em variáveis estáticas, é possível converter os tipos de dados de umavariável, desde que essa conversão seja possível, por exemplo:

  É possível converter qualquer tipo primitivo para string mas nem sempre é possível o contrario  Um string que representa um número pode ser convertido para um tipo numérico, caso não

represente, a conversão gerará uma exceção.  Um numero pode sempre ser convertido para um número com mais bits, exemplo, um tipo byte 

(8 bits) pode ser convertido para um do tipo int (32 bits).  O contrário nem sempre é possível (de um tipo com mais bits para representá-lo para um com

menos bits), desde que o valor não exceda o limite do tipo menor, a conversão ocorrerá semproblemas, senão, haverá uma exceção (erro) na execução.

Page 38: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 38/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

38 

Nas conversões que sempre poderão acontecer, o mesmo é feito automaticamente, sem precisar“forçar” nenhuma dessas conversões. Logo é possível converter sem problemas (automaticamente) ostipos:

  De byte, short, int, long, float, double, char, bool para string  De byte para short, de short para int, de int para float, de float para Double

Mas pode ocorrer problemas na conversão dos tipos:

  De Double para float, long para int, de int para short, de short para byte  De uma string para um tipo numérico

Esses tipos de conversões tem que ser feita de forma explícita, e no C# existem algumas formas de sefazer isso. A mais simples é usando a classe Convert .

Essa classe implementa vários métodos que permite a conversão de qualquer tipo para outro, desdeque essa conversão seja possível.

Por exemplo, temos:

// converte uma string que representa o valor 123 para o tipo byte

byte numero8bits = Convert.ToByte("123");

// converte uma string que representa o valor 1024 para o tipo short

short numero16bits = Convert.ToInt16("1024");

// converte uma string que representa o valor 34123 para o tipo int

int numero32bits = Convert.ToInt32("34123");

// converte uma string que representa o valor 123123.12455 para o tipo double

double numeroReal64bits = Convert.ToDouble("123123.12455");

// converte o número 123 para uma stringstring palavra1 = Convert.ToString(123);

// outra maneira de converter o número 123 para uma string

string palavra2 = 123.ToString();

Comandos de Escrita e Leitura

Como vamos trabalhar primeiramente com programas não visuais, isto é, aplicações do tipo Console, éimportante aprendermos uma maneira de ler informações do usuário e também enviar.

Para tanto, o C# implementa alguns métodos dentro da classe Console que faz parte do espaço denomes (namespace) chamado System.

Para escrever alguma informação na tela podemos usar esses dois comandos:

Console.WriteLine( informação );

Console.Write( informação );

Onde

  WriteLine é usado para escrever um dado e pular uma linha  Write é usado para escrever um dado e não pular uma linha  Informação é qualquer valor, sejam valores numéricos, textos ou uma concatenação entre eles.

Page 39: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 39/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

39 

Para ler alguma informação do usuário, podemos usar o comando:

variável = Console.ReadLine();

Onde

  Variável pode ser de qualquer tipo  ReadLine lê uma informação do usuário e essa informação sempre é do tipo string, caso queira

mudar o tipo, é necessário usar o Convert .

Exemplo

Para explicar melhor o conceito de variáveis, leitura e escrita, vamos implementar um projeto cujoobjetivo é ler o nome de um aluno, ler as notas de duas provas e depois mostrar o nome é a média doaluno:

1. Abra o Visual Studio 2005

2. Na área Recent Projects selecione a solução que você criouno exercício anterior (no nosso caso é a Solução Liluyoud)

3. Ao abrir sua solução, selecione apasta Console

4. Com o botão direito do mouse, cliqueem cima da pasta e selecione o item de

menu Add | New Project...

Page 40: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 40/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

40 

5. Assim como no projeto anterior, selecionena área de Templates o tipo Console

 Application.

6. Na área Name informe o nome do projeto

que será Estruturas Básicas. 

7. Na área Location informe o local ondevocê deseja armazenar seu novo projeto,que é o local onde sua solução foi criada edentro da pasta Console ( no nosso casoseria C:\Liluyoud\Console ).

Agora a pasta Console da nossa Solução contem dois

projetos, o Alo e o Estruturas Básicas.Entretanto em uma solução, apenas um projeto podeestar ativo, e que no caso, é o projeto anterior ( o Alo).

O projeto ativo é o projeto que será iniciado quando vocêquiser compilar e executar um programa.

Como vamos trabalhar com o projeto recém criado, paramudar o projeto ativo da solução, precisamos:

8. Selecione o projeto que deseja ser o ativo (padrão)

9. Com o botão direito do mouse, clique no projeto eselecione a opção Set as StartUp Project .

Pronto, agora seu novo projeto será compilado eexecutado.

Agora precisamos apenas implementar umalgoritmo que resolva o problema proposto.

Esse algoritmo, por enquanto, tem que estardefinido dentro do método Main.

A seguir temos um modelo de solução para oproblema.

Page 41: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 41/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

41 

using System;

using System.Collections.Generic;

using System.Text;

namespace Basico {

class Program {

static void Main(string[] args) {

// declaração das variáveisstring aluno;

double nota1, nota2;

// lendo as informações do usuário

Console.Write("Informe o nome do Aluno: ");

aluno = Console.ReadLine();

Console.Write("Informe a 1a nota: ");

nota1 = Convert.ToDouble(Console.ReadLine());

Console.Write("Informe a 2a nota: ");

nota2 = Convert.ToDouble(Console.ReadLine());

// fazendo os cálculos

double media = (nota1 + nota2) / 2;

// criando uma saida com o resultado

Console.WriteLine("-----------------------");

Console.WriteLine("O aluno {0} tirou as notas {1} e {2}",

aluno, nota1, nota2);

Console.WriteLine("Sua média é {0}", media);

// esperando o usuário clicar para sair do programa

Console.ReadLine();

}

}

}

ESTRUTURAS DE DECISÃO

O C# assim como outras linguagens apresentam diversas estruturas que controla a execução (fluxo ecomportamento) de um programa. Dentre elas podemos citar as estruturas de decisão permitem que

Page 42: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 42/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

42 

escolhamos qual parte do código será executado dado uma expressão booleana (que pode ter comoresultado, apenas dois valores: verdadeiro ou falso).

if –

else if - else

Um exemplo de estrutura de decisão é a estrutura IF (SE), que serve para mudar o fluxo da execução deum programa dado uma expressão booleana. A maioria dos programas tomam decisões que afetam seufluxo. As declarações que tomam essas decisões são chamadas de declarações de controle.

Sintaxes:

if sem chaves if com chavesif (expressao booleana)

comando;

Obs: Usando quando temos apenas um comando

fazendo parte do if

if (expressao booleana) {

comando 1;

comando 2;

...

comando n;

}

Obs: Usando quando temos vários comandos fazendo

parte do if

if - else sem chaves if com chavesif (expressao booleana)

comando1;

else

comando2;

Obs: onde comando1 será somente executado se a

expressão booleana for verdadeiro, e caso for

falso será executado o comando2

if (expressao booleana) {

comandos bloco 1;

...

} else {

comandos bloco 2;

...

}

Obs: onde os comandos do bloco 1 serão somente

executados se a expressão booleana for

verdadeiro, e caso for falso será executado os

comandos do bloco 2

if  – else if – elseif (expressao booleana 1) {

comandos bloco 1;

...} else if (expressao booleana 2){comandos bloco 2;

...

} else if ... {

...

} else if (expressao booleana n){comandos bloco n;

...} else {comandos bloco else;...

Onde:

Os comandos do bloco 1 serão somente executados

se a expressão booleana 1 for verdadeira;

Os comandos do bloco 2 serão somente executados

se a expressão booleana 2 for verdadeira;

Os comandos do bloco n serão somente executados

se a expressão booleana n for verdadeira;

Os comandos do bloco else serão somente

executados se nenhuma expressão booelana anterior

for verdadeira.

O uso de chaves é obrigatório quando se quer que mais de um comando seja executado quando umaexpressão é verdadeira ou não. Caso o fluxo seja direcionado para apenas um comando, a chaves não sefaz necessária. As chaves delimitam blocos de comando, similiar ao Inicio...Fim usando nos algorítimos.

Page 43: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 43/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

43 

switch

O comando switch existe nas principais linguagens de programação (C, C++, Java, C#). Seu propósito épermitir que o valor de uma variável ou expressão controle o fluxo de execução do programa.

Sintaxe:

O comando deve começar com a palavra reservada switch, e cada bloco de execução deve conter apalavra reservada case acompanhada do valor que a variável de controle deve ter. Para finalizar obloco, devemos usar o comando break .

Switchswitch ( expressão ) {

case valor1:

comandos;

break;

case valor2:

comandos;

break;

...case valorN:

comandos;

break;

default:

comandos;

break;

}

Onde:

Os comandos relacionados ao case valor1 serão

somente executados se o valor da expressão for

igual ao valor1;

Os comandos relacionados ao case valor2 serão

somente executados se o valor da expressão for

igual ao valor2;

Os comandos relacionados ao case valorN serão

somente executados se o valor da expressão for

igual ao valorN;

Os comandos do bloco default serão somente

executados se nenhuma expressão tiver um valor

definido na estrutura case.

Exemplo

Para explicar melhor o conceito de estruturas de decisão, vamos implementar um programa cujoobjetivo é similar ao exercício anterior, sendo que este irá mostrar se o aluno passou por média (médiamaior ou igual a 6), vai pra final ou reprovou de vez (média menor que 3).

Para os alunos que passaram por média, o programa ainda definirá um conceito para aquele aluno:

  A+ para média 10  A para média 9  para média 8  B para média 7

1. Abra o Visual Studio 2005

2. Na área Recent Projects selecione a solução que você criouno exercício anterior (no nosso caso é a Solução Liluyoud)

Page 44: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 44/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

44 

3. Ao abrir sua solução, selecione apasta Console

4. Com o botão direito do mouse, cliqueem cima da pasta e selecione o item de

menu Add | New Project...

5. Assim como no projeto anterior, selecionena área de Templates o tipo Console

 Application.

6. Na área Name informe o nome do projetoque será Estruturas de Decisão. 

7. Na área Location informe o local ondevocê deseja armazenar seu novo projeto,que é o local onde sua solução foi criada edentro da pasta Console ( no nosso caso

seria C:\Liluyoud\Console ).

Não se esquecendo de colocar o projetoatual como projeto padrão (Set as StartupProject, visto no exemplo anterior).

Agora precisamos apenas implementar umalgoritmo que resolva o problema proposto.

Esse algoritmo, por enquanto, tem que estardefinido dentro do método Main.

A seguir temos um modelo de solução para oproblema.

using System;

using System.Collections.Generic;

using System.Text;

namespace Decisao {

class Program {

Page 45: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 45/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

45 

static void Main(string[] args) {

// declaração das variáveis

string aluno;

double nota1, nota2;

// lendo as informações do usuário

Console.Write("Informe o nome do Aluno: ");

aluno = Console.ReadLine();

Console.Write("Informe a 1a nota: ");

nota1 = Convert.ToDouble(Console.ReadLine());

Console.Write("Informe a 2a nota: ");

nota2 = Convert.ToDouble(Console.ReadLine());

// fazendo os cálculos

double media = (nota1 + nota2) / 2;

// verificando a situação do aluno

if (media >= 6) {

Console.Write("Aluno Aprovado ");

// para trabalhar com switch precisamos usar numeros inteiros

// e por isso arredondamos a varíavel média

int conceito = (Int32)Math.Round(media);switch (conceito) {

case 10: Console.WriteLine("com conceito A+");

break;

case 9: Console.WriteLine("com conceito A+");

break;

case 8: Console.WriteLine("com conceito A+");

break;

default: Console.WriteLine("com conceito satisfatório");

break;

}

} else if (media >= 3) {

Console.WriteLine("Aluno para Prova Final");

} else {

Console.WriteLine("Aluno Reprovado");

}

// esperando o usuário clicar para sair do programaConsole.ReadLine();

}

}

}

Como exemplo, temos a seguintesaída de execução do programa:

ESTRUTURAS DE REPETIÇÃO

Page 46: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 46/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

46 

O C# assim como outras linguagens apresentam diversas estruturas que permitem a execução de umcomando ou um bloco de comandos mais de uma vez (ou nenhuma em alguns casos), controlando ofluxo de execução de um programa.

Esse fluxo de execução é controlado por uma expressão booleana, por isso, uma estrutura de repetição é

normalmente é composto por essa expressão mais um comando ou um bloco de comandos. No caso, aexpressão booleana - chamada de expressão de controle ou condição de parada - será avaliada e, se forverdadeira, o comando será executado, caso contrário, o fluxo de repetição será parado.

Deve-se observar que, caso o comando - ou bloco de comandos - executado dentro de uma estrutura derepetição não altere nenhum dos elementos da expressão de controle, a repetição será infinita.

Não é incomum especificar-se, como expressão de controle do, uma expressão que sempre sejaverdadeira, tornando a repetição infinita um efeito desejado. Nesses casos, ou há uma outra estruturade controle dentro dos comandos a serem repetidos que terminará o laço de repetição - tal como umcomando break - ou o programa controla um conjunto de ações que realmente deverá ser executado

ininterruptamente - como um sistema operacional ou um programa de controle de um dispositivoportátil, por exemplo.

Existem 3 tipos clássicos de estruturas de repetição descritos a seguir:

for

No comando for, podemos dizer que o(s) comando(s) será(ao) executado(s) por uma quantidade pré-definida de vezes, utilizando-se pra isso, um contador interno, inicializado previamente, que serámodificado a cada iteração do comando for.

A execução da estrutura for então está vinculada a esse contados, executando o(s) comandos enquanto

a expressão booleana, que envolve o contador, for verdadeiro, ou parando a execução caso ele seja falso.

Sintaxe:

forfor (VI; CP; INC)

comando;

ou

for (VI; CP; INC) {

comandos;

Onde:

VI é nde o contador é iniciado com um Valor

Inicial;

CP é Condição de Parada que nada mais é do que

uma expressão booleana (ou expressão de controle)

que envolve o contador iniciado e que controlará

a execução ou não dos comandos;

INC é o local onde o contador é modificado, pode

ser INCrementado ou diminuído ao longo das

iterações do comando for.

while

No comando while, podemos dizer que o(s) comando(s) será(ao) executado(s) enquanto a expressãofor verdadeira - daí derivando o nome do comando while. O fato de a expressão ser avaliada antes de ocomando ser executado caracteriza o comando while como sendo um repetitivo pré-testado,diferenciando-o de comandos repetitivos pós-testados, tais como o do-while.

Como o while é uma estrutura de repetição pré-testado, pode acontecer que os comandos definidos nobloco de comandos possam não ser executados.

Page 47: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 47/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

47 

Sintaxe:

whilewhile (CP)

comando;

ou

while (CP) {

comandos;

Onde:

CP é Condição de Parada que nada mais é do que

uma expressão booleana (ou expressão de controle)

que controlará a execução ou não dos comandos daestrutura while;

do... while

No comando do...while, podemos dizer que o(s) comando(s) será(ao) executado(s) enquanto a

expressão for verdadeira - daí derivando o nome do comando while. O fato de a expressão ser avaliadadepois de o comando ser executado (usando-se o comando do – faça - antes do while) caracteriza ocomando como sendo um repetitivo pós-testado, onde sempre pelo menos uma vez os comandosdefinidos no bloco de comandos serão executados.

Sintaxe:

do...whiledo

comando;

while (CP)

ou

do {

comandos;

} while (CP) 

Onde:

CP é Condição de Parada que nada mais é do que

uma expressão booleana (ou expressão de controle)

que controlará a execução ou não dos comandos da

estrutura do...while;

Exemplo

Para explicar melhor o conceito de estruturas de repetição, vamos implementar um programa cujoobjetivo é criar um menu de execução que sempre será mostrado enquanto o usuário não digitar 0.

Caso ele digitar 1 o programa deverá mostrar a tabuada de 1 a 9 e caso ele digite 2, o programamostrará a soma de todos esses números da tabuada.

Page 48: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 48/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

48 

1. Abra o Visual Studio 2005

2. Na área Recent Projects selecione a solução que você criouno exercício anterior (no nosso caso é a Solução Liluyoud)

3. Ao abrir sua solução, selecione apasta Console

4. Com o botão direito do mouse, cliqueem cima da pasta e selecione o item demenu Add | New Project...

5. Assim como no projeto anterior, selecionena área de Templates o tipo Console

 Application.

6. Na área Name informe o nome do projetoque será Estruturas de Decisão. 

7. Na área Location informe o local onde

você deseja armazenar seu novo projeto,que é o local onde sua solução foi criada edentro da pasta Console ( no nosso casoseria C:\Liluyoud\Console ).

Page 49: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 49/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

49 

Não se esquecendo de colocar o projetoatual como projeto padrão (Set as StartupProject, visto no exemplo anterior).

Agora precisamos apenas implementar um

algoritmo que resolva o problema proposto.

Esse algoritmo, por enquanto, tem que estardefinido dentro do método Main.

A seguir temos um modelo de solução para oproblema.

using System;

using System.Collections.Generic;

using System.Text;

namespace Repeticao {

class Program {

static void Main(string[] args) {

int opcao;

do {

Console.WriteLine("\n\n[1] - Mostrar Tabuada");

Console.WriteLine("[2] - Somar Tabuada");

Console.WriteLine("[0] - Sair do Programa");

Console.Write("Selecione uma opcao -> ");

opcao = Convert.ToInt32(Console.ReadLine());

switch (opcao) {

case 1:

for (int i = 1; i < 10; i++) {

Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}\t{8}" ,

1*i, 2*i, 3*i, 4*i, 5*i, 6*i, 7*i, 8*i, 9*i);}

break;

case 2:

int j = 1, soma = 0;

while (j < 10) {

soma = 1*j + 2*j + 3*j + 4*j + 5*j + 6*j + 7*j + 8*j + 9*j;

j++;

}

Console.WriteLine("A soma da tabuada e {0}", soma);

break;

}

} while (opcao != 0);

Console.WriteLine("Programa terminado");

Console.ReadLine();

}

}

}

Page 50: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 50/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

50 

Como exemplo, temos aseguinte saída de execuçãodo programa:

SUBPROGRAMASEm ciência da computação , uma subprograma (função ou procedimento) são códigos incluídos dentrode programas de computador e relativamente independente do resto do código do programa. MauriceWilkes, Stanley Gill e David Wheeler são os inventores de subprogramas.

Elas ajudam a estruturar o código de forma organizada e simples, e fundamentam a estrutura de todosoftware em tempo de desenvolvimento. Um subprograma é frequentemente uma função chamadadiversas vezes em diferentes momentos do programa, geralmente mais utilizada para programaçãoestruturada, que distinguem funções, e procedimentos, outras linguagens como linguagem C e LISP nãoas distinguem. Na orientação a objetos os subprogramas são chamados de métodos, ondeprocedimentos são métodos que tem o tipo de retorno void e funções são métodos que tem um tipo deretorno diferente de void.

Subprogramas que são muito utilizadas em programas são incluídas da biblioteca padrão da linguagem.

Como utilizamos uma linguagem orientada a objetos, o C#, o que são definidos no programa sãométodos, que serão explicados com mais detalhes no próximo capítulo, específico para Orientação aObjetos.

Como forma de explanação apenas, vamos definir por cima a sua sintaxe e forma de utilização.

Sintaxe:

Métodos sem retornopublic static void Nome(Parâmetros) {

Onde:

Nome é o nome do método

Parâmetros é uma lista separado por vírgula (que

pode ser vazia) contendo todas as variáveis (nome

e tipo) a serem passadas ao método

Métodos com retornopublic static Tipo Nome(Parâmetros) {

...

return Tipo;} 

Onde:

Tipo é o tipo de retorno a ser passado pelo

método (pode ser um número, um texto, e até mesmoum objeto).

Page 51: Apostila C#

5/7/2018 Apostila C# - slidepdf.com

http://slidepdf.com/reader/full/apostila-c-559abb1de4b59 51/51

 

Programação em C#

Prof. MSc. Liluyoud Cury de Lacerda

51 

Nome é o nome do método

Parâmetros é uma lista separado por vírgula (que

pode ser vazia) contendo todas as variáveis (nome

e tipo) a serem passadas ao método