Você está na página 1de 301

Curso Programando com C# e o Visual Studio .

NET 2005

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 1

Curso Programando com C# e o Visual Studio .NET 2005

Nota sobre direitos autorais:

Este e-book de autoria de Herbert Moroni Cavallari da Costa Gois, sendo


comercializado

diretamente

www.linhadecodigo.com.br

ou

www.mercadolivre.com.br,

atravs
atravs
mediante

do

site

do

site

contato

www.juliobattisti.com.br
de

leiles

Mercado

Livre:

atravs

do

email:

batisti@hotmail.com ou webmaster@juliobattisti.com.br, diretamente pelo autor ou


por Jlio Battisti. No Mercado Livre, somente o usurio GROZA que tem
autorizao para comercializar este e-book. Nenhum outro usurio/email e/ou
empresa est autorizada a comercializar este ebook.

Ao adquirir este ebook voc tem o direito de l-lo na tela do seu computador e de
imprimir quantas cpias desejar. vetada a distribuio deste arquivo, mediante
cpia ou qualquer outro meio de reproduo, para outras pessoas. Se voc recebeu
este ebook atravs do e-mail ou via ftp de algum site da Internet, ou atravs de
um CD de Revista, saiba que voc est com uma cpia pirata, ilegal, no
autorizada, a qual constitui crime de Violao de Direito Autoral, de acordo com a
Lei 5988. Se for este o caso entre em contato com o autor, atravs do e-mail
webmaster@juliobattisti.com.br, para regularizar esta cpia. Ao regularizar a sua
cpia voc ir remunerar, mediante uma pequena quantia, o trabalho do autor e
incentivar que novos trabalhos sejam disponibilizados. Se voc tiver sugestes
sobre novos cursos que gostaria de ver disponibilizados, entre em contato pelo email: webmaster@juliobattisti.com.br.

Visite periodicamente o site www.juliobattisti.com.br para ficar por dentro das


novidades:

Cursos de informtica.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 2

Curso Programando com C# e o Visual Studio .NET 2005

Guias de Estudo para os Exames de Certificao da Microsoft.

Artigos e dicas sobre Certificaes da Microsoft.

Artigos sobre Carreira e Trabalho.

Dicas de livros e sites sobre diversos assuntos.

Simulados

ESTE E-BOOK NO PODE SER FORNECIDO EM UM CD

gratuitos,

em

portugus,

para

os

exames

da

Microsoft.

OU DVD DE NENHUMA REVISTA

SE

VOC

ATRAVS
OUTRO

OBTEVE
DO

UMA

E-MULE,

PROGRAMA

CPIA
KAZAA,

DE

DESTE

E-BOOK

MORPHEUS

OU

COMPARTILHAMENTO,

SAIBA QUE VOC EST COM UMA CPIA ILEGAL,


NO AUTORIZADA

USAR UMA CPIA NO AUTORIZADA CRIME DE


VIOLAO DE DIREITOS AUTORAIS, COM PENA
PREVISTA DE CADEIA

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 3

Curso Programando com C# e o Visual Studio .NET 2005

PR-REQUISITOS PARA O CURSO:

Para que voc possa acompanhar as lies deste curso necessrio que voc j
tenha preenchido os seguintes pr-requisitos:

Conhecimento bsico do Windows 98, 2000 ou XP, tais como:

Criao de pastas e subpastas.


Utilizao do mouse e do teclado.
Operaes bsicas com arquivos e pastas, usando o Windows
Explorer.
Conhecer conceitos tais como cones, rea de trabalho, janelas do
Windows, uso de menus e outras configuraes bsicas do Windows.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 5

Curso Programando com C# e o Visual Studio .NET 2005

Palavras do autor:

A proposta desde curso ajud-lo a entrar no mundo da programao usando a


linguagem C# e a ferramenta Visual Studio .NET 2005. Para tanto, no exite em
fazer os exemplos propostos. Aprender a programar como dirigir, voc aprende
fazendo, para isso apresentamos uma srie de exemplos passo-a-passo e conforme
vamos nos aprofundando nos exemplos e as duvidas vo surgindo discutimos a
teoria, assim fica mais fcil assimilar e memorizar o assunto proposto.

Tambm estou a disposio para responder eventuais dvidas sobre o contedo do


curso, envie-me tambm suas sugestes para que possamos sempre melhorar o
material proposto. Meu e-mail para contato herbertmoroni@hotmail.com ou
moroni@weblitenet.com.br.

Ao final deste curso voc vai dominar a linguagem de programao C# e vai saber
como

tirar

proveito

dos

principais

recursos

do

Visual

Studio

.NET

2005,

proporcionando melhor produtividade no desenvolvimento de sistemas.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 6

Curso Programando com C# e o Visual Studio .NET 2005

ndice do Curso
ndice do Curso............................................................................................ 7
Introduo ................................................................................................ 10
Mdulo 1.............................................................................................................................................13
Bem vindo ao C# e ao Visual Studio.NET 2005 ..................................................................13
Lio 1 Bem vindo ao C# e ao Visual Studio .NET 2005 ........................................13
Lio 2 Usando o CSC para compilar seu programa.................................................28
Lio 3 Criando sua primeira aplicao Windows com C# e o Visual Studio
.NET.................................................................................................................................................34
Lio 4 Criando documentao usando XML e cometrios.....................................47
Mdulo 2.............................................................................................................................................56
Variveis.............................................................................................................................................56
Lio 5 Entendo variveis e tipos de dados .................................................................56
Lio 6 Nomeando uma varivel ......................................................................................59
Lio 7 Palavras Reservadas do C# ................................................................................61
Lio 8 Declarando variveis .............................................................................................62
Lio 9 Atribuindo valor a variveis ................................................................................63
Lio 10 Tipos de dados ......................................................................................................64
Lio 11 Adicionando valor a uma varivel..................................................................67
Lio 12 Operadores .............................................................................................................69
Mdulo 3.............................................................................................................................................81
Mtodos e Escopo ...........................................................................................................................81
Lio 13 Entendento mtodos ...........................................................................................81
Lio 14 Entendento Escopo ..............................................................................................86
Lio 15 Criando e Chamando Mtodos.........................................................................89
Mdulo 4...........................................................................................................................................107
Estruturas de Deciso .................................................................................................................107

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 7

Curso Programando com C# e o Visual Studio .NET 2005

Lio 16 Entendendo as Estruturas de Deciso........................................................107


Lio 17 Usando o if............................................................................................................108
Lio 18 Usando o switch..................................................................................................118
Mdulo 5...........................................................................................................................................129
Estruturas de Repetio .............................................................................................................129
Lio 19 Usando o while ....................................................................................................129
Lio 20 Usando o do .........................................................................................................134
Lio 21 Usando o for.........................................................................................................138
Lio 22 Conhecendo o foreach......................................................................................143
Mdulo 6...........................................................................................................................................144
Gerenciando Erros e Excees .................................................................................................144
Lio 23 Conhecendo os trs tipos de erros ..............................................................144
Lio 24 Encontrando erros com o Visual Studio.NET 2005................................145
Lio 25 Usando a janela Watch ....................................................................................158
Lio 26 Usando a janela Command.............................................................................163
Lio 27 try..catch ...............................................................................................................166
Lio 28 Usando try...catch aninhados........................................................................176
Lio 29 Programao defensiva....................................................................................180
Lio 30 Exit try....................................................................................................................181
Mdulo 7...........................................................................................................................................183
Arrays e Colees .........................................................................................................................183
Lio 31 Usando Arrays .....................................................................................................183
Lio 32 Colees.................................................................................................................197
Mdulo 8...........................................................................................................................................205
Aprofundando em Windows Forms.........................................................................................205
Lio 33 Trabalhando com mltiplos formulrios ....................................................205
Lio 34 Passando valores entre Forms ......................................................................212
Lio 35 Posicionando os formulrios na tela............................................................217
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 8

Curso Programando com C# e o Visual Studio .NET 2005

Lio 36 Controlando os eventos dos formulrios...................................................218


Mdulo 9...........................................................................................................................................221
Usando controles do Windows Forms....................................................................................221
Lio 37 Usando o controle dateTimePicket...............................................................221
Lio 38 Usando os controles radioButton, checkBox, listBox e comboBox..226
Mdulo 10 ........................................................................................................................................238
Bancos de dados com ADO.NET ..............................................................................................238
Lio 39 Conceitos bsicos de banco de dados ........................................................238
Lio 40 Usando o Visual Studio 2005 para manipular dados de um banco de
dados. ...........................................................................................................................................245
Mdulo 11 ........................................................................................................................................260
Imprimindo......................................................................................................................................260
Lio 41 Imprimindo a partir de uma textBox ..........................................................260
Mdulo 12 ........................................................................................................................................274
Distribuindo sua aplicao.........................................................................................................274
Lio 42 Criando um projeto de instalao ................................................................275
Lio 43 Executando o programa de instalao .......................................................295

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 9

Curso Programando com C# e o Visual Studio .NET 2005

Introduo

Neste curso voc vai aprender a usar a linguagem de programao C# e utilizar


seus recursos para desenvolver aplicaes para Windows atravs da ferramenta
Visual Studio .NET 2005.

O C#, junto com o Visual Studio .NET 2005 compe uma ferramenta extremamente
robusta e fcil de utilizar, com perfeito suporte a todas as novas ondas que rondam
o mundo da informtica e tecnologia.

O Visual Studio .NET 2005 a melhor ferramenta de desenvolvimento de aplicaes


para a plataforma .NET. Com uma interface amigvel e integrada com os ambientes
e de fcil entendimento, proporciona aos desenvolvedores a criao de aplicaes
sofisticadas com todos os recursos existentes, sem ter que ficar criando parte de
cdigo em um aplicativo e o restante no outro. possivel com o Visual Studio
gerenciar recursos da mquina e local e de um possvel servidor, criar aplicaes
para Windows, web e dispositivos mveis.

Captulo 1: Neste captulo voc vai iniciar no desenvolvimento usando o Visual


Studio .NET 2005, vai aprender a criar aplicaes Windows e a utilizar o CSC para
compilar seu programa pelo prompt de comando. Vai aprender tambm como gerar
documentao XML a partir de comentrios que podem ser inseridos em seus
programas.

Captulo 2: Neste captulo voc vai aprender sobre variveis, tipos de dados,
converso de tipos de dados, operadores, o que Common language Runtime e

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 10

Curso Programando com C# e o Visual Studio .NET 2005

Common Type System, alm disso vai receber dicas sobre como nomear suas
variveis.

Capitulo 3: Neste capitulo voc vai entender o que so mtodos e escopo. Vai
aprender a criar e usar mtodos.

Captulo 4: Neste captulo voc vai aprender sobre estruturas de DECISO, vai
saber como usar o IF e o SWITCH.

Captulo 5: Neste captulo voc vai aprender sobre estruturas de REPETIO, vai
saber como usar o WHILE, o DO, o FOR e vai conhecer o FOREACH.

Captulo 6: Neste captulo voc vai aprender como encontrar erros utilizando o
Visual Studio .NET, vai tambm aprender a usar o Try..Catch..Finally para tratar
seus erros em tempo de execuo. No bastando vai aprender a programar
defensivamente, evitando erros.

Captulo 7: Neste captulo voc vai aprender a criar e manipular dados de Arrays e
Colees.

Captulo 8: Neste captulo voc vai aprender a usar mltiplos formulrios no seu
programa, passar valor entre eles, posicion-los na tela e controlar seus eventos.

Captulo 9: Neste captulo voc vai aprender a usar os controles disponveis para
suas

aplicaes

Windows,

para

isso

estudaremos

uso

dos

controles:

DateTimePicket, RadioButton, CheckBox, ListBox, ComboBox.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 11

Curso Programando com C# e o Visual Studio .NET 2005

Captulo 10: Neste captulo voc vai aprender os conceitos principais de banco de
dados e como inserir, apagar e alterar registros.

Captulo 11: Neste captulo voc vai aprender a imprimir informaes de seus
programas, vai aprende tambm a implementar os recurso de configurar impresso
e visualizar impresso.

Captulo 12: Neste captulo voc vai aprender como distribuir suas aplicaes
criando um instalador.

Para enviar suas dvidas referentes aos assuntos e exemplos abordados neste
curso, para enviar sugestes de alteraes/correes, para sugerir novos cursos,
para criticar e para elogiar (porque no?), s entrar em contato pelo e-mail:
moroni@weblitenet.com.br.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 12

Curso Programando com C# e o Visual Studio .NET 2005

Mdulo 1
Bem vindo ao C# e ao Visual Studio.NET 2005

Neste capitulo voc vai se familiarizar com a linguagem C# e o ambiente de


desenvolvimento do Visual Studio .NET 2005. Para isso vai criar uma sua primeira
aplicao.

Lio 1 Bem vindo ao C# e ao Visual Studio .NET


2005

Vamos primeiramente conhecer um pouco do Visual Studio.NET, a ferramenta que


utilizaremos para desenvolver nossos aplicativos e criar nosso primeiro exemplo.

1 Entre no Visual Studio.NET, eu estou usando a verso 2005, mas os exerccios


funcionam em qualquer verso.

Voc pode entrar no Visual Studio.NET atravs do menu Iniciar / Programas /


Microsoft Visual Studio .NET / Microsoft Visual Studio .NET , sinta-se a
vontade para criar qualquer atalho para ele.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 13

Curso Programando com C# e o Visual Studio .NET 2005

A imagem anterior mostra o Visual Studio .NET assim que o iniciamos, exibida a
pagina Start Page onde podemos abrir rapidamente os ultimos projetos criados
atravs da caixa Recent Projects.

2 No menu File, aponte em New, e clique em Project. (Ou clique Ctrl+Shift+N).

A caixa de dialogo New Project aparece. Ela permite que criemos um novo
projeto usando vrios templates, como um Windows Application, Class Library,
Console Application e vrios outros.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 14

Curso Programando com C# e o Visual Studio .NET 2005

3 No painel Project Type, clique em Visual C# Projects, aqui esto todos os


templates disponveis para a linguagem C#.

4 No painel Templates clique em Console Application.

5 No campo nome digite, ClassicoHelloWorld.

Perceba que voc pode ainda alterar o caminho onde sua aplicao ser
salva e o nome da sua Soluo.

6 Clique em OK.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 15

Curso Programando com C# e o Visual Studio .NET 2005

A barra de menus (menu bar) possibilita o acesso aos comandos que voc usa
no ambiente de programao. Voc pode usar o teclado ou o mouse para acessar o
menu ou atalhos exatamente como usa em outros programas baseados em
Windows.

A barra de ferramentas (toolbar) localizada embaixo da barra de menus e


disponibiliza botes que executam os comandos usados com mais freqncia. No
confunda toolbar com toolbox.

A janela Solution Explorer mostra os nomes dos arquivos associados com o seu
projeto. Voc pode dar um clique duplo sobre o nome do arquivo para exibi-lo no
painel de cdigo (Code pane). Vamos examinar os arquivos que o Visual Studio
criou como parte do seu projeto:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 16

Curso Programando com C# e o Visual Studio .NET 2005

ClassicoHelloWorld.sln organiza os projetos de cada soluo, uma soluo


pode ter vrios projetos, seu nome representado no primeiro item na
janela Solution Explorer s que sem a extenso do arquivo.

ClassicoHelloWorld.csproj este o arquivo do projeto C#. Pode ser


associado a vrios arquivos de cdigo. reconhecido no Solution Explorer
pelo nome do projeto apenas, no entanto gravado no disco com a
extenso .csproj.

Program.cs um arquivo de cdigo do C#. Voc vai escrever seu cdigo


neste

arquivo.

Visual

Studio

adicionou

algum

cdigo

nele

automaticamente, examinaremos esse cdigo mais adiante.

AssemblyInfo.cs este um outro arquivo de cdigo do C#. Voc pode usar


esse arquivo para adicionar atributos ao seu programa, como por exemplo,
nome do autor, data que o programa foi escrito e outros. Vamos examina-lo
tambm mais adiante no curso.

Aos poucos ns vamos explorando mais o Visual Studio, vamos ao nosso primeiro
exemplo.

O arquivo Program.cs define uma classe chamada Program que contm um


mtodo chamado Main. Todos os mtodos precisam ser definidos dentro de uma
classe. O mtodo Main especial porque ele o primeiro a ser executado quando
o programa iniciado, por isso ele precisa ser designado como static (esttico),
mtodos e classes vo ser discutidos em detalhes mais adiante no curso.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 17

Curso Programando com C# e o Visual Studio .NET 2005

Importante: O C# case-sensitive, ele diferencia letras minsculas de


maisculas, um M interpretado diferente de um m. Consequentemente Main
diferente de main.

Nosso primeiro exemplo bem simples, e um clssico para quem esta aprendendo
qualquer linguagem, ele escreve Hello World no console.

7 Dentro do mtodo Main, entre os colchetes digite: Console

A classe Console contm os mtodos para exibir mensagens na tela e pegar as


entradas do teclado. Tudo que o usurio digita no teclado pode ser lido atravs da
classe Console. A classe Console s significante para aplicaes que rodam no
prompt de comando como neste nosso primeiro exemplo.

8 Agora digite um ponto depois de Console.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 18

Curso Programando com C# e o Visual Studio .NET 2005

Uma lista aparece, ela chamada de IntelliSense, esse no um recurso


exclusivo do Visual Studio mas ajuda muito na programao principalmente em
linguagens case-sensitive, como o C#. O IntelliSense exibe todos os mtodos,
propriedades e campos da classe.

9 Selecione WriteLine, voc pode usar o Mouse ou o Teclado, tecle Enter ou d


um clique duplo sobre o WriteLine.

O IntelliSense fechado e o mtodo WriteLine adicionado ao cdigo. Como a


seguinte imagem:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 19

Curso Programando com C# e o Visual Studio .NET 2005

Quando o IntelliSense aparece voc tambm pode pressionar W para ir direto para
o primeiro membro do mtodo Console que comear com w.

10 Abra parnteses (

mostrado uma outra forma do IntelliSense, esse mostra os parmetros do


mtodo WriteLine. O mtodo WriteLine tem o que chamamos de Sobrecarga
(Overload). Para cada sobrecarga do mtodo WriteLine usamos parmetros
diferentes. Cada sobrecarga e seus respectivos parmetros podem ser visualizados
clicando com o mouse na seta do IntelliSense

ou navegando pelas setas do

teclado.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 20

Curso Programando com C# e o Visual Studio .NET 2005

11 Feche os parnteses ) e digite ponto-e-virgula, vai ficar assim:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 21

Curso Programando com C# e o Visual Studio .NET 2005

12 Digite entre os parnteses a string Hello World, string deve ficar entre
aspas. Vamos aprender sobre os tipos de dados em detalhes tambm, o importante
agora saber que string um tipo de dado. Vai ficar assim:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 22

Curso Programando com C# e o Visual Studio .NET 2005

Pegue o habito de digitar os pares de caracteres juntos, como ( e ) e { e }, antes


de entrar com seus respectivos contedos. Assim voc evitar alguns erros por
esquecer de fechar.

13 Vamos agora compilar nossa aplicao. No menu Build, clique em Build


Solution. Se tudo estiver certinho vai aparecer a seguinte linha na janela Output:

========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========

Para exibir a janela Output na barra de menus clique em View, Output ou pressione
Ctrl+W+O.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 23

Curso Programando com C# e o Visual Studio .NET 2005

Um asterisco depois do nome do arquivo no painel de cdigo indica que foram


feitas modificaes no cdigo do respectivo arquivo e que essas alteraes no
foram salvas. Voc pode salvar manualmente antes de compilar a aplicao, mas
ao compilar o Visual Studio salva automaticamente todos os arquivos da aplicao.

14 No menu Debug, clique em Start Without Debugging para executar o


programa no prompt de commando.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 24

Curso Programando com C# e o Visual Studio .NET 2005

O programa vai escrever Hello World como a ilustrao acima.

Ns escolhemos Start Without Debugging para forar uma pausa no final da


execuo. Se clicssemos em Start ele iria executar o programa e fechar o prompt
de comando logo aps a execuo, seria to rpido que no conseguiramos ver o
que foi escrito, experimente.

15 Com o foco no prompt de comando pressione qualquer tecla.

A janela ir fechar e retornaremos para o Visual Studio.

16 - Na janela Solution Explorer, clique no boto Show All Files.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 25

Curso Programando com C# e o Visual Studio .NET 2005

Aparecem os nomes bin e obj depois do nome do projeto. Esses dois


correspondem a pastas com seus respectivos nomes. Essas pastas so criadas
quando voc executa a aplicao e contem uma verso executvel do programa e
outros arquivos necessrios para depurar o programa.

17 Ainda na janela Solution Explorer, clique no sinal de + esquerda do nome


bin.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 26

Curso Programando com C# e o Visual Studio .NET 2005

Um outro nome aparece representando uma outra pasta chamada debug.

18 Clique no sinal de + de debug.

Repare nos arquivos: ClassicoHelloWorld.exe e ClassicoHelloWorld.pdb.

O arquivo .exe o executvel da aplicao.

O arquivo .pdb armazena informaes de depurao da aplicao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 27

Curso Programando com C# e o Visual Studio .NET 2005

O arquivo ClassicoHelloWorld.vshost.exe s aparece no Visual Studio 2005, ele


usado para melhorar a performance da depurao de erros.

Como vimos at agora, o Visual Studio compilou automaticamente nosso programa


e criou os arquivos necessrios automaticamente, durante o processo de
compilao. Em resumo a compilao o processo que transforma seus arquivos
fonte em um arquivo executvel pelo sistema operacional, um .exe por exemplo.

Lio 2 Usando o CSC para compilar seu programa

1 - Com o Visual Studio fechado, na barra de ferramentas do windows clique em


Iniciar, Executar, digite notepad em Abrir e clique em OK.

2 - Digite o seguinte cdigo no notepad.

using System;

namespace txtHello
{

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 28

Curso Programando com C# e o Visual Studio .NET 2005

class Class1
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
}

3 Salve o arquivo com o nome teste.cs


Para isso ser necessrio escolher Todos os arquivos na opo Salvar como tipo no
notepad quando voc clicar em Arquivo \ Salvar.

4 Feche o notepad.

5 No menu Iniciar, v em Programas / Visual Studio .NET / Visual Studio


.NET Tools e clique em Visual Studio .NET Command Prompt.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 29

Curso Programando com C# e o Visual Studio .NET 2005

Para

compilarmos

manualmente

nosso

programa

so

necessrias

algumas

mudanas no ambiente do sistema operacional como alteraes em algumas


variveis de ambiente, PATH, LIB e INCLUDE. Essas mudanas incluem adicionar
pastas contendo bibliotecas e utilitrios .NET.

6 No prompt, v at a pasta que voc salvou o arquivo teste.cs.

7 Digite dir e tecle enter.

Ele vai listar os arquivos da pasta, no caso vai mostrar o arquivo teste.cs.

8 Digite: csc /out:hello.exe teste.cs

Isso vai criar um executvel chamado hello.exe.

9 Digite dir e tecle enter.

Agora voc no v apenas o arquivo teste.cs, foi adicionado um arquivo chamado


hello.exe, ele o resultado da compilao do seu arquivo fonte teste.cs.
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 30

Curso Programando com C# e o Visual Studio .NET 2005

10 Digite hello e tecle enter.

O programa ser executado, no caso, ser escrito a palavra Hello World, no


prompt semelhante ao que ocorreu com o exemplo da lio 1.

11 Digite del hello.exe e tecle enter.

Isso apagara o arquivo executvel.

12 Digite csc teste.cs

Ao omitir o parmetro /out o compilador cria um arquivo executvel com o mesmo


nome do arquivo fonte. Ser criado ento o arquivo teste.exe, execute este
arquivo para test-lo.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 31

Curso Programando com C# e o Visual Studio .NET 2005

13 Abra novamente o arquivo teste.cs, pode ser no prprio notepad ou no Visual


Studio .NET.

14 Apague a primeira linha de cdigo. Vai ficar assim:

namespace txtHello
{
class Class1
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
}

15 Compile e teste a aplicao, novamente fica a sua escolha, use o prompt de


comando ou o Visual Studio .NET. Uma recomendao, compile manualmente pelo

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 32

Curso Programando com C# e o Visual Studio .NET 2005

prompt para se familiarizar melhor com ele, j que no falaremos muito mais
sobre ele no curso.

16 Ao compilar ele vai emitir um erro. Como este:

teste.cs(7,4): error CS0246: The type or namespace name 'Console' could not be
found (are you missing a using directive or an assembly reference?)

17

Mude

linha

com

Console.WriteLine("Hello

World");

para

System.Console.WriteLine("Hello World");

18 - Compile e teste novamente.

A compilao concluda com sucesso e o programa funciona normalmente s que


desta vez sem a diretiva using System;

Como parte do Microsoft .NET Framework o C# pode fazer uso de uma srie de
classes de utilidades que executam uma gama de operaes teis. Essas classes
so organizadas no que chamamos de namespaces, eles contem um conjunto de
classes relacionadas e tambm podem conter outros namespaces.

System um namespace. O namespace System o mais importante porque


contm as classes que a maior parte das aplicaes utiliza para interagir com o
sistema operacional.

A classe Console uma classe do namespace System.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 33

Curso Programando com C# e o Visual Studio .NET 2005

O mtodo Writeline um mtodo da classe console que escreve uma mensagem


no prompt de comando.

Os namespaces ajudam a reduzir a complexidade de um programa e a facilitar sua


manuteno.

Podemos criar nossos prprios namespaces.

Programas pequenos e crianas pequenas tm uma coisa obvia em comum, eles


crescem. Com o crescimento de um programa surgem dois problemas:

1 - Quanto mais cdigo maior a complexidade do programa e mais difcil


sua manuteno.

2 - Mais cdigo usualmente representa mais nomes de dados, funes,


classes, etc. Facilitando os erros por conter nomes iguais.

Os namespaces tem a funo de ajudar a solucionar esses dois problemas. Para


usar um namespace lembre-se que necessrio fazer uma referencia ao mesmo
atravs de uma diretiva using seguido do nome do namespace no comeo do
bloco de cdigo. Voc pode fazer referencia a vrios namespaces no seu arquivo
de cdigo. Um em cada linha. Um aps o outro.

Lio 3 Criando sua primeira aplicao Windows


com C# e o Visual Studio .NET

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 34

Curso Programando com C# e o Visual Studio .NET 2005

At agora por motivo didtico usamos somente o prompt de comando para criar os
nossos exemplos. Como sabemos esse tipo de aplicao no muito til nos dias
de hoje. O Visual Studio .NET conta com diversos recursos importantes para o
desenvolvimento de aplicaes Windows.

1 Entre no Visual Studio .NET.

2 Crie um novo projeto, s que desta vez do tipo Windows Application,


chamado WinHello.

O Visual Studio .NET cria e mostra um formulrio baseado em Windows no modo


Design.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 35

Curso Programando com C# e o Visual Studio .NET 2005

Vamos agora criar a nossa interface com o usurio.

3 Na barra de ferramentas do Visual Studio .NET clique em ToolBox. O cone da


ToolBox aparece a esquerda do formulrio. Voc tambm pode localizar a ToolBox
atravs do menu View > ToolBox.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 36

Curso Programando com C# e o Visual Studio .NET 2005

4 Arraste da barra de ferramentas o controle Label e posicione-o no canto


superior esquerdo do formulrio.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 37

Curso Programando com C# e o Visual Studio .NET 2005

Para colocar um controle no formulrio voc pode tambm dar um clique duplo
sobre ele na barra de ferramentas ou clicar uma vez sobre ele na barra de
ferramentas e depois clicar no formulrio. O clique duplo posiciona o controle no
canto superior esquerdo. A segunda opo coloca o controle no local onde voc
clicar.

5 Coloque tambm no formulrio um controle TextBox e um controle Button.


Como na prxima ilustrao:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 38

Curso Programando com C# e o Visual Studio .NET 2005

6 Na janela Solution Explorer, clique no boto View Code.

O cdigo do arquivo Form1.cs aparece.

Para voltar ao modo design, tambm na janela Solution Explorer clique em View
Design.

Form1.cs tem todo o cdigo gerado automaticamente pelo Visual Studio .NET.
Note os seguintes elementos no cdigo.

As diretivas usadas no inicio do cdigo referenciando aos namespaces.

using System;
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 39

Curso Programando com C# e o Visual Studio .NET 2005

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

O Visual Studio .NET usa o mesmo nome do projeto para criar o namespace
principal.

namespace WinHello
{

Uma classe chamada Form1 dentro do namespace WinHello.

namespace WinHello
{
public class Form1 ...
{
...
}
}

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 40

Curso Programando com C# e o Visual Studio .NET 2005

O constructor (construtor), um mtodo especial que tem o mesmo nome


da classe. Ele o primeiro mtodo a ser executado quando o programa
iniciado.

public class Form1 ...


{
...
public Form1()
{
...
}
}

Um mtodo chamado InitializeComponent. O cdigo dentro deste mtodo


configura as propriedades dos controles que adicionamos no modo Design.
Ateno, no modifique o contedo do InitializeComponent diretamente no
cdigo, use a janela Properties no modo Design. Vamos aprender mais sobre
os

mtodos

nos

prximos

tutoriais.

Este

mtodo

esta

no

arquivo

Form1.designer.cs no Visual Studio .NET 2005.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 41

Curso Programando com C# e o Visual Studio .NET 2005

private void InitializeComponent()


{
this.label1 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(13, 13);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(35, 13);
this.label1.TabIndex = 0;
this.label1.Text = "label1";
//
// button1
//
this.button1.Location = new System.Drawing.Point(150, 50);
this.button1.Name = "button1";
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 42

Curso Programando com C# e o Visual Studio .NET 2005

this.button1.Size = new System.Drawing.Size(75, 23);


this.button1.TabIndex = 1;
this.button1.Text = "button1";
this.button1.UseVisualStyleBackColor = true;
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(16, 50);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(100, 20);
this.textBox1.TabIndex = 2;
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F,
13F);
this.AutoScaleMode =
System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(292, 273);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.button1);
this.Controls.Add(this.label1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
this.PerformLayout();

}...

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 43

Curso Programando com C# e o Visual Studio .NET 2005

Vamos agora definir as propriedades dos controles que colocamos no Form.

7 Volte para o modo Design.

Para voltar ao modo design, tambm na janela Solution Explorer clique em View
Design.

8 De um clique sobre o Button1 para selecion-lo.

9 Na janela Properties, altere a propriedade Text do button1 para OK.

Se no localizar a janela Properties, clique em F4, ou no menu View, clique em


Properties Window.

10 Altere tambm a propriedate Text do Label1 para Digite o seu nome

11 Altere agora a propriedade Text do controle textBox1 para aqui.

Note que as propriedades modificadas na janela Properties ficam em negrito.


Assim voc pode saber se elas esto com seu valor padro ou no.

12 Selecione o formulrio clicando sobre ele.

Note que aparecem alguns marcadores envolta do formulrio. Eles ajudam a


redimensionar o formulrio.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 44

Curso Programando com C# e o Visual Studio .NET 2005

13 - Clique sobre o marcador central na parte de baixo do Form1 e mantendo o


boto pressionado arraste para cima.

Isso serve para os outros controles tambm, clique sobre os outros controles e note
os marcadores.

Vamos agora escrever o cdigo para o nosso programa.

14 No painel de cdigo de um clique duplo sobre o Button1.

Note que ele vai diretamente para o painel de cdigo e criado automaticamente o
seguinte cdigo.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 45

Curso Programando com C# e o Visual Studio .NET 2005

private void button1_Click(object sender, System.EventArgs e)


{

Tudo que for digitado dentro deste cdigo ser executado assim que o Button1 for
clicado quando o programa estiver executando.

15 - Digite o seguinte cdigo:

Tenha ateno com esse cdigo, ele deve ser digitado exatamente como se segue,
lembre-se que o C# case-sensitive. necessrio tambm o ponto-e-virgula no
final da linha.

MessageBox.Show("Hello " + textBox1.Text);

Vai ficar assim:

private void button1_Click(object sender, System.EventArgs e)


{
MessageBox.Show("Hello " + textBox1.Text);

16 Execute o programa.

Para executar o programa voc pode clicar e F5, ou no menu Debug clicar em
Start Debugging.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 46

Curso Programando com C# e o Visual Studio .NET 2005

Automaticamente o Visual Studio .NET salva o programa, compila e o executa. A


seguinte janela aparece:

17 Digite seu nome e clique em OK.

Uma janela aparece exibindo a mensagem Hello seu-nome.

18 - Clique em Ok para fechar a janela com a mensagem.

19 Na janela executando o Form1 clique em fechar.

Lio 4 Criando documentao usando XML e


cometrios

Podemos facilitar o processo de documentao de nossos programas usando XML.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 47

Curso Programando com C# e o Visual Studio .NET 2005

Vamos fazer um exemplo pratico pra ver como isso possvel.

1 Entre no Visual Studio .NET e crie uma Console Application chamada


Documentacao.

2 No painel de cdigo modifique o nome da classe de Program para


BemVindos, no pode haver espaos entre as palavras quando se nomeia uma
classe.

3 Adicione o seguinte cdigo dentro do namespace Documentacao:


/// <summary>
/// <remarks>
/// Este programa escreve "Hello World"
/// usando o mtodo WriteLine da
/// Classe Syste.Console
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 48

Curso Programando com C# e o Visual Studio .NET 2005

/// The main entry point for the application.


/// </remarks>
/// </summary>

Vai ficar como a imagem abaixo:

4 Dentro do mtodo Main digite o cdigo que escreve Hello World no prompt
de comando. Se tiver duvida consulte a lio 1.

5 Na janela Solution Explorer clique sobre o arquivo Program.cs.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 49

Curso Programando com C# e o Visual Studio .NET 2005

6 Na janela Properties, modifique o nome do arquivo Program.cs para


BemVindos.cs

Se voc for verificar o nome do arquivo pelo Explorer do Windows ver que o nome
do arquivo foi realmente modificado.

Mudao o nome da classe no muda o nome do arquivo, uma boa pratica sempre
mudar o nome do arquivo aps a mudana do nome da classe.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 50

Curso Programando com C# e o Visual Studio .NET 2005

7 Entre no prompt de comando. Qualquer duvida sobre isso visite a lio 2.

8 Navegue at a pasta dos arquivos do projeto.

9 Digite csc /doc:Hello.xml BemVindos.cs

Esse comando extrai os comentrios XML inseridos junto com o cdigo.

10 Atravs do Explorer do Windows, v at a pasta do programa e de um clique


duplo sobre o arquivo Hello.xml

Voc vai visualizar o cdigo XML com os comentrios que inserimos no cdigo no
Internet Explorer.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 51

Curso Programando com C# e o Visual Studio .NET 2005

Existe uma variedade enorme de tags XML que podem ser usadas na documentao
do cdigo, iremos listar as mais usadas logo abaixo.

O comentrio XML sempre adicionado aps barras triplas, ou seja, uma barra a
mais que usamos para comentar o cdigo, como o exemplo abaixo:

/// <remarks>
/// Este programa escreve "Hello World"
/// usando o mtodo WriteLine da
/// Classe Syste.Console
/// The main entry point for the application.
/// </remarks>

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 52

Curso Programando com C# e o Visual Studio .NET 2005

Abaixo segue uma lista das tags XML mais usadas. Lembre-se que com XML voc
pode criar suas prprias tags.

TAG
<summary> </summary>

PROPSITO
Para

uma

breve

descrio

de

uma

classe, mtodo ou propriedade.


<remarks> </remarks>

Para uma descrio mais detalhada.

<para> ... </para>

Permite delinear pargrafos dentro da


tag <remarks>

<list type=""> </list>

Permite usar marcadores para formatar


uma descrio. Os tipos de marcadores
podem ser bullet, number e table.

<example> </example>

Para disponibilizar um exemplo de como


usar um mtodo, propriedade ou outro
membro da biblioteca.

<code> </code>

Para indicar que o texto includo


cdigo da aplicao.

<c> </c>

Para indicar que o texto includo


cdigo da aplicao. usada para linhas
de cdigo que precisam ser separadas
da descrio.

<see cref="member"/>

Indica uma referencia a outro membro


ou campo. O compilador verifica se o
membro realmente existe.

<exception> </exception>

Para fazer a descrio de uma exceo.

<permission> </permission>

Para documentar a acessibilidade.

<param name="name"> </param>

Para documentar um parmetro de um

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 53

Curso Programando com C# e o Visual Studio .NET 2005

mtodo.
<returns> </returns>

Para documentar um valor e seu tipo


retornado de um mtodo.

<value> </value>

Para descrever uma propriedade.

Existe uma maneira mais fcil de gerar sua documentao XML, usando o Visual
Studio sem precisar do prompt de comando.

11 Na janela Solution Explorer, clique com o boto direito do mouse e selecione


Properties, como a imagem seguinte.

12 Na janela que se abre, clique na guia Build e marque a opo XML


Documentation file, como na prxima imagem.
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 54

Curso Programando com C# e o Visual Studio .NET 2005

13 No menu Build, clique em Build Solution ou pressione F6.

Seu arquivo de documentao gerado. Voc pode alterar o nome do arquivo que
ser gerado na caixa de texto que segue a opo XML documentation file, pode
alterar tambm o caminho do local onde o arquivo ser gerado. Por padro ele tem
o mesmo nome do projeto e criado na pasta bin\debug dentro do projeto.

Voc pode agora ir clicar em Show All Files na janela Solution Explorer e
navegar at o local onde o arquivo XML foi criado para visualiz-lo.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 55

Curso Programando com C# e o Visual Studio .NET 2005

Mdulo 2
Variveis

Lio 5 Entendo variveis e tipos de dados

Antes de falarmos sobre os tipos de dados vamos conhecer um pouco mais da


plataforma .NET.

Uma aplicaes desenvolvida utilizando uma linguagem de programao como


Delphi ou Visual Basic executada encima do sistema operacional, ou seja, ela
acessa DLLs, APIs e outros recursos diretamente do sistema operacional.

Isso no acontece com o .NET, esse acessa seus recursos do .NET Framework. O
.NET Framework um conjunto de DLLs que disponibiliza os recursos que podem
ser usados na plataforma .NET.

O objetivo do .NET Framework simplificar o desenvolvimento de software. Alguns


dos seus benefcios so:

Baseado em padres WEB: suporta a maioria das tecnologias disponveis


para a Internet incluindo HTML, XML, SOAP, XSLT, XPath, e outros.

Modelo de aplicao unificado: as classes do .NET Framework esto


disponveis para qualquer linguagem com suporte plataforma.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 56

Curso Programando com C# e o Visual Studio .NET 2005

Fcil de se usar: o cdigo organizado hierarquicamente em namespaces e


classes. Os tipos de dados so unificados entre as linguagens compatveis
com a plataforma. Vamos estudar melhor sobre os tipos de dados.
Namespaces e classes vo ser tratados no futuro.

Classes extensveis: A hierarquia do .NET Framework no oculta ao


desenvolvedor, voc pode acessar e extender classes do .NET Framework
(menos as classes seladas) usando herana.

Voc vai entender melhor os benefcios do .NET Framework durante o curso. Como
voc pode ver ele muito importante para a plataforma .NET.

Por sua vez, um dos principais componentes do .NET Framework a CLR ou


Common

Language

Runtime.

CLR

fornece

vrios

benefcios

para

desenvolvedor, tais como:

Tratamento de erros

Segurana

Depurao

Controle de verso

Estes benefcios esto disponveis em qualquer linguagem criada para a CLR. Isto
quer dizer que a CLR pode servir a uma variedade de linguagens e pode oferecer
um conjunto comum de ferramentas para estas linguagens. A Microsoft criou o C#
e o VB .NET, como as principais linguagens para a CLR.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 57

Curso Programando com C# e o Visual Studio .NET 2005

Quando um compilador compila para a CLR, o cdigo chamado de cdigo


gerenciado. Cdigo gerenciado simplesmente cdigo que tira vantagem dos
servios oferecidos pela CLR.

Quando voc declara uma varivel no C# voc precisa determinar qual tipo de dado
ser armazenado nela. O tipo de dado vai dizer quais valores so possveis de se
armazenar nessa varivel.

Quem define as regras para os tipos de dados como declarao, uso e


gerenciamento dos tipos o CTS ou common type system que faz parte do CLR.

Atravs do CTS possvel o desenvolvimento em linguagens diferentes na mesma


plataforma e ter total integrao entre elas, alm disso, ele responsvel por
garantir o tipo de dado e aumentar o desempenho da execuo.

Variveis so espaos na memria do computador reservador para armazenar


dados.

A referencia aos dados de uma varivel pode ser feita de duas maneiras:

1. Por valor, chamado de Value-Type.


2. Por referncia, chamada de Reference-Type

A principal diferena entre os dois tipos que quando voc faz referencia a uma
varivel Value-Type ela contm diretamente um dado, enquanto uma varivel
Reference-Type contm uma referencia ao dado. Vamos analisar um pouco melhor
esses dois tipos de variaveis:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 58

Curso Programando com C# e o Visual Studio .NET 2005

Value-Type

Contm diretamente o dado.

Cada copia da varivel contm uma copia do dado.

Operaes em uma varivel no afetam a sua cpia.

Exemplos

de

variveis

Value-Type

so:

integers,

doubles,

floats,

structures.

Reference-Type

Armazenam uma referencia ao dado(conhecido como objetos)

Duas variveis Reference-Type podem conter referencia a um mesmo


objeto.

Operaes em uma afetam a outra.

Exemplos de Reference-Type so: strings, arrays, e classes.

Vamos aprender agora como declarar variveis, seus principais tipos e como
atribuir e recuperar valores delas.

Lio 6 Nomeando uma varivel

A documentao do Microsoft .Net Framework da as seguintes recomendaes para


a nomeao das variveis:

Evite usar underline;

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 59

Curso Programando com C# e o Visual Studio .NET 2005

No crie variveis que apenas se diferenciem apenas pela sua forma.


Exemplo: minhaVariavel e outra chamada MinhaVariavel;

Procure iniciar o nome com uma letra minscula;

Evite usar todas as letras maisculas;

Quando o nome tiver mais que uma palavra, a primeira letra de cada
palavra aps a primeira deve ser maiscula (conhecido como notao
camelCase);

No use notao Hngara.

Conveno PascalCasing

Para usar a conveno PascalCasing para nomear suas variveis, capitalize o


primeiro caractere de cada palavra. Exemplo:

void InitializeData();

A microsoft recomenda usar o PascalCasing quando estiver nomeando classes,


mtodos, propriedades, enumeradores, interfaces, constantes,

campos somente

leitura e namespaces.

Conveno camelCasing

Para usar esse tipo de conveno, capitalize a primeira letra de cada palavra menos
da primeira. Como o exemplo:
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 60

Curso Programando com C# e o Visual Studio .NET 2005

int loopCountMax;

A Microsoft recomenda usar essa conveno na nomeao de variveis que definem


campos e parmetros.

Para

maiores

informaes

sobre

conveno

de

nomes

pesquise

Naming

Guidelines, na documentao do Visual Studio.

Lio 7 Palavras Reservadas do C#

A linguagem C# reserva setenta e cinco palavras para seu prprio uso. Estas
palavras so chamadas de palavras reservadas e cada uma tem um uso particular.

Palavras reservadas tambm no so permitidas como nome de variveis.

Segue uma lista que identifica todas estas palavras:

abstract

as

base

Bool

break

byte

case

Catch

char

checked

class

Const

continue

decimal

default

Delegate

do

double

else

Enum

event

explicit

extern

false

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 61

Curso Programando com C# e o Visual Studio .NET 2005

finally

fixed

float

for

foreach

goto

if

implicit

in

int

interface

internal

is

lock

long

namespace

new

null

object

operator

out

override

params

private

protected

public

readonly

ref

return

sbyte

sealed

short

sizeof

stackalloc

static

string

struct

switch

this

throw

No painel de cdigo do Visual Studio .NET as palavras reservadas so identificadas


pela cor de letra azul.

Lio 8 Declarando variveis

Antes de usar uma varivel necessrio declar-la.

Quando declaramos uma varivel, alocamos espao para a mesma na memria do


computador. Sempre que declaramos uma varivel precisamos dizer que tipo de
dado pode ser armazenado nela. O tipo de dado indica qual o tamanho do espao
vai ser reservado para a varivel.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 62

Curso Programando com C# e o Visual Studio .NET 2005

O C# pode armazenar diferentes tipos de dados: como inteiros, nmeros de ponto


flutuante, textos e caracteres.

Declaramos especificando o tipo de dado seguido do nome da varivel como no


exemplo:

int contador;

Esse exemplo declara uma varivel chamada contador do tipo integer. Ou seja, ela
dever armazenar nmeros inteiros, mais a frente estudaremos melhor o que
armazenar em cada tipo de dado.

Podemos tambm declarar mltiplas variveis de uma vez, fazemos isso da


seguinte maneira:

int contador, numeroCarro;

Estamos declarando nesse exemplo duas variveis do tipo integer, uma chamada
contador e a outra numeroCarro.

Lio 9 Atribuindo valor a variveis

Depois de declarar sua varivel voc precisa atribuir um valor a ela. No C# voc
no pode usar uma varivel antes de colocar um valor nela, isso gera um erro de
compilao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 63

Curso Programando com C# e o Visual Studio .NET 2005

Exemplo de como atribuir um valor a uma varivel:

int numeroFuncionario;

numeroFuncionario = 23;

Primeiro ns declaramos nossa varivel do tipo integer. Depois atribumos o valor


23 a ela. Entendemos pelo sinal de igual como recebe. Assim numeroFuncionario
recebe 23.

Podemos tambm atribuir um valor a varivel quando a declaramos, dessa forma:

int numeroFuncionario = 23;

Isso faz mesma coisa que o exemplo anterior, s que tudo em uma linha.

Mais um exemplo:

char letraInicial = M;

Lio 10 Tipos de dados

A seguinte tabela mostra os tipos do C# com sua referencia no Framework.

Os tipos da tabela abaixo so conhecidos como tipos internos ou Built-in.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 64

Curso Programando com C# e o Visual Studio .NET 2005

C# Type

.NET Framework type

bool

System.Boolean

byte

System.Byte

sbyte

System.SByte

char

System.Char

decimal

System.Decimal

double

System.Double

float

System.Single

int

System.Int32

uint

System.UInt32

long

System.Int64

ulong

System.UInt64

object

System.Object

short

System.Int16

ushort

System.UInt16

string

System.String

Cada tipo no C# um atalho para o tipo do Framework. Isso quer dizer que se
declararmos a varivel desta forma:

string nome;

ou dessa forma

System.String nome;

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 65

Curso Programando com C# e o Visual Studio .NET 2005

teremos o mesmo resultado. O atalho serve apenas para facilitar na hora de


desenvolver a aplicao.

A seguinte tabela mostra os tipos de variveis e os valores possveis de se


armazenar em cada uma delas.

C# Type

Valores possveis de se armazenar

bool

Verdadeiro ou Falso (Valores booleandos)

byte

0 a 255 (8 bits)

sbyte

-128 a 127 (8 bits)

char

Um caractere (16 bits)

decimal

1.0 1028 a 7.9 1028 (128 bits)

double

5.0 10324 a 1.7 10308 (64 bits)

float

1.5 1045 a 3.4 1038 (32 bits)

int

-2,147,483,648 a 2,147,483,647 (32 bits)

uint

0 a 4,294,967,295 (32 bits)

long

9,223,372,036,854,775,808 a
9,223,372,036,854,775,807 (64 bits)

ulong

0 a 18,446,744,073,709,551,615 (64 bits)

object

Qualquer tipo.

short

-32,768 a 32,767 (16 bits)

ushort

0 a 65,535 (16 bits)

string

Seqncia de caracteres (16 bits por caractere)

Todos os tipos na tabela com exceo dos tipos object e string so conhecidos
como tipos simples.
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 66

Curso Programando com C# e o Visual Studio .NET 2005

Para retornar o tipo de qualquer varivel do C# voc pode usar o mtodo


GetType(); Como no exemplo:

Console.WriteLine(minhaVariavel.GetType());

Isso retornaria o tipo da varivel minhaVariavel.

Lio 11 Adicionando valor a uma varivel

muito comum precisarmos adicionar ou subtrair valores de uma varivel usando


no calculo o valor que j esta armazenado na mesma.

O cdigo seguinte declara uma varivel do tipo integer chamada contador e


armazena o valor 2 nesta varivel, depois incrementa o valor 40:

int contador;
contador = 2;
contador = contador + 40;

No final do cdigo acima a varivel contador tem qual valor?

A resposta 42, claro, criamos a varivel, adicionamos o valor 2 nela e aps,


pegamos o valor dela (que era 2) e adicionamos 40, e armazenamos o valor na
mesma.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 67

Curso Programando com C# e o Visual Studio .NET 2005

Preste ateno na seguinte linha de cdigo:

contador = contador + 40;

Perceba que para somar o valor a varivel precisamos repetir o nome da varivel.

Podemos fazer da seguinte forma tambm em C#:

contador += 40;

Isso teria o mesmo resultado e uma maneira mais elegante.

Voc pode subtrair tambm valores, como o exemplo:

contador -= 23;

Isso subtrairia 23 do valor da varivel.

Na verdade voc pode fazer isso com todos os operadores aritmticos, como
multiplicao e diviso tambm. Voc vai aprender sobre operadores no prximo
capitulo.

Para saber mais voc pode consultar a documentao do Visual Studio e procurar
por assignment.

Embora no tenhamos feito nenhum exerccio at aqui neste capitulo voc


aprendeu como declarar uma varivel, de que forma nomear as variveis, quais as
palavras que no podem ser usadas na nomeao de variveis e quais os tipos de
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 68

Curso Programando com C# e o Visual Studio .NET 2005

dados e valores que eles suportam. Os exerccios sobre esse contedo sero feitos
sempre, j que sempre faremos uso de variveis em nossos programas, assim fique
tranqilo aos pouco isso ser bem familiar a voc.

Lio 12 Operadores

Operadores Aritmticos:

O C# suporta os smbolos aritmticos que todos ns conhecemos para as operaes


aritmticas bsicas como adio (+) e subtrao (-), ele utiliza o asterisco (*) para
multiplicao e barra pra frente (/) para diviso. Esses smbolos so chamados
operadores, e operam os valores das variveis. Exemplo:

long salario;
salario = 500 * 20;

A expresso acima multiplica 500 por 20 e armazena o resultado na varivel


salario.

Entretanto voc no pode usar os operadores para qualquer tipo de dado. Os


operadores matemticos, por exemplo, s podem ser usados para os tipos char,
int, long, float, double e decimal. Eles no podem ser usados para string e bool.

Exemplo:

Console.WriteLine(Londrina So Paulo);
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 69

Curso Programando com C# e o Visual Studio .NET 2005

Isso vai gerar um erro porque voc no pode subtrair uma string de outra.

Console.WriteLine(43 11);

Isso tambm vai gerar um erro, porque valores entre aspas so sempre strings,
para efetuar a subtrao o correto :

Console.WriteLine(43 11);

Vamos fazer um exemplo pratico de como utilizar os operadores.

1 Crie um novo projeto no Visual Studio do tipo Windows Application chamado


Operadores.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 70

Curso Programando com C# e o Visual Studio .NET 2005

2 Arraste para o Form1 os seguintes controles:

3 Label

3 TextBox

1 Button

1 GroupBox

5 RadioButton

3 Organize-os como a figura abaixo:

4 Configure as propriedades dos controles conforme a tabela abaixo:

Controle

Propriedade

Valor

Label1

Text

Valor1

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 71

Curso Programando com C# e o Visual Studio .NET 2005

Label2

Text

Valor2

Label3

Text

Resultado

Button

Text

Calcular

GroupBox

Text

Operador

RadioButton1

Text

+ Adio

RadioButton2

Text

- Subtrao

RadioButton3

Text

* Multiplicao

RadioButton4

Text

/ Diviso

RadioButton5

Text

% Resto Diviso

Vai ficar como a figura abaixo:

5 Execute a aplicao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 72

Curso Programando com C# e o Visual Studio .NET 2005

Clique na TextBox1, pressione a tecla Tab do teclado, verifique que conforme voc
clica na tecla ele passa de um controle a outro.

Clique sobre os operadores, veja que voc s pode selecionar um, essa uma
caracterstica do controle RadioButton que no tinha sido usado at aqui. A
GroupBox agrupa todos os RadioButtons dentro dela de forma que apenas um
deles pode ser selecionado.

6 Finalize a execuo, para isso voc pode simplesmente fechar a janela do


Form1 ou clicar no boto Stop Debugging na barra de ferramentas.

7 - Vamos agora digitar o cdigo que efetuar os clculos, esse cdigo vai ser
executado quando o boto Calcular for clicado. De um clique duplo sobre o
Button1 para digitarmos o seguinte cdigo. (Ateno na hora de digitar, lembre-se
que o C# case-sensitive ou seja, diferencia maisculas de minsculas).

long primeiroValor, segundoValor, resultado;

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 73

Curso Programando com C# e o Visual Studio .NET 2005

primeiroValor = int.Parse(textBox1.Text);
segundoValor = int.Parse(textBox2.Text);

if (radioButton1.Checked)
{
resultado = primeiroValor + segundoValor;
textBox3.Text = resultado.ToString();
}
else if (radioButton2.Checked)
{
resultado = primeiroValor - segundoValor;
textBox3.Text = resultado.ToString();
}
else if (radioButton3.Checked)
{
resultado = primeiroValor * segundoValor;
textBox3.Text = resultado.ToString();
}
else if(radioButton4.Checked)
{
resultado = primeiroValor / segundoValor;
textBox3.Text = resultado.ToString();
}
else if(radioButton5.Checked)
{
resultado = primeiroValor % segundoValor;
textBox3.Text = resultado.ToString();
}
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 74

Curso Programando com C# e o Visual Studio .NET 2005

Digitamos nosso cdigo dentro do procedimento:

private void button1_Click(object sender, System.EventArgs e)


{

Esse procedimento executado sempre que o Button1 clicado. Sendo assim


quando o boto clicado, primeiro:

Declaramos as variveis primeiroValor, segundoValor e resultato do tipo Long.


O tipo Long usado aqui porque armazena uma grande variedade de nmeros.
Perceba que declaramos as trs variveis em apenas uma linha de cdigo.r.

long primeiroValor, segundoValor, resultado;

Depois atribumos os valores das caixas de texto as variveis primeiroValor e


segundoValor.

primeiroValor = int.Parse(textBox1.Text);
segundoValor = int.Parse(textBox2.Text);

Como o valor que esta na caixa de texto do tipo string convertemos para int
usando int.Parse. Voc pode usar o mtodo Parse sempre que precisar converter
um tipo de dados em outro. Para usa-lo digite o tipo do dado ponto Parte como o
exemplo acima ou o seguinte exemplo:

long.Parse(textBox2.Text);
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 75

Curso Programando com C# e o Visual Studio .NET 2005

Voltando ao nosso exemplo, depois de atribuir os valores as variveis vamos


verificar qual operao executar, para isto usamos a propriedade checked de cada
RadioButton.

if (radioButton1.Checked)

ou

else if (radioButton2.Checked)

Se o valor da propriedade Checked do RadioButton for True quer dizer que ele esta
selecionado,

ento

executamos

calculo

correspondente

ao

RadioButton

selecionado e atribumos o resultado a varivel resultado.

Agora atribumos o valor da varivel resultado propriedade Text do textbox3


para que seja exibida na tela.

textBox3.Text = resultado.ToString();

Perceba que precisamos converter o valor da varivel resultado para String.


Fizemos isto utilizando o mtodo ToString. Voc pode usar o mtodo ToString
sempre que precisar converter um tipo de dados para string.

8 Execute o programa.

9 Digite 9 para o valor1 e 2 para o valor2, selecione adio e clique em calcular.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 76

Curso Programando com C# e o Visual Studio .NET 2005

Faa testes com os outros operadores.

Subtrao:

Multiplicao:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 77

Curso Programando com C# e o Visual Studio .NET 2005

Diviso, perceba que ele retorna um resultado em inteiro, o numero inteiro mais
prximo do resultado:

Resto da Diviso, perceba que ele retorna o resto da diviso, 9 dividido por dois
resulta em 4 com resto 1.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 78

Curso Programando com C# e o Visual Studio .NET 2005

10 Pare a aplicao.

Precedncia de Operadores:

Operaes dentro dos parnteses so sempre executadas primeiro, como nas


operaes matemticas.

Em C#, operadores multiplicativos (*, /, %) tem precedncia sobre os aditivos (+,


-).

Vamos dar a ordem de precedncia da seguinte expresso:

2+3*4

2+3*4

2 + 12

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 79

Curso Programando com C# e o Visual Studio .NET 2005

14

Para efetuar a soma primeiro podemos utilizar os parnteses:

(2 + 3) * 4

(2 + 3) * 4

5*4

20

Perceba que a ordem de precedncia altera o valor do resultado, por isso devemos
ter ateno com a precedncia.

Nesta lio aprendemos a fazer operaes aritmticas em nossos programas, alem


disso aprendemos sobre precedncia de operadores.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 80

Curso Programando com C# e o Visual Studio .NET 2005

Mdulo 3
Mtodos e Escopo

Lio 13 Entendento mtodos

Mtodo uma seqncia nomeada de instrues. Cada mtodo tem um nome e um


corpo. O corpo contem as instrues que vo ser executadas quando o mtodo for
chamado. O nome do mtodo deve ajudar a identificar seu propsito, ex:
CalcularImpostoVenda.

A maioria dos mtodos recebe dados, processa-os e retorna a informao ou o


resultado do processamento. Mtodo um mecanismo fundamental e poderoso.

Especificando a sintaxe de declarao de um mtodo:


tipoDeRetorno nomeDoMetodo ( listaDeParamentros

opcional

{
// corpo do mtodo
}

tipoDeRetorno o tipo de dado que vai ser retornado pelo mtodo aps sua
execuo. Pode ser o nome de qualquer tipo como int ou string. Se o seu
mtodo no for retornar valor algum, voc precisa usar a palavra reservada
void aqui, especificando que o mtodo no retorna nada.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 81

Curso Programando com C# e o Visual Studio .NET 2005

nomeDoMetodo o nome que vai ser usado para chamar o mtodo. Este
nome deve seguir as mesmas recomendaes usadas nos nomes das variveis.
Procure usar notao camelCasing para nomear os mtodos e tambm procure
utilizar um verbo na primeira palavra do nome, para ajudar a identificar o que o
mtodo faz.

ListaDeParametros descreve o tipo e os nomes das informaes opcionais que


o mtodo recebe. Voc escreve os parmetros dentro dos parnteses como se
fosse declarar variveis: nome do tipo seguido pelo nome do parmetro. Se o
seu mtodo tiver mais que um parmetro, separe-os com vrgula.

Corpo do mtodo linhas de cdigo que vo ser executadas quando o mtodo


chamado.

O C# no suporta os mtodos globais, utilizados por programadores Visual Basic, C


e C++.

Abaixo um exemplo de um mtodo chamado AdicionarValores que retorna um


numero inteiro (int) e recebe dois nmeros inteiros como paramentos.

int adicionarValores (int numeroPequeno, int numeroGrande)


{
//...
// corpo do mtodo deve ser feito aqui
//...
}

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 82

Curso Programando com C# e o Visual Studio .NET 2005

Abaixo um segundo exemplo, de um mtodo chamado mostrarResultado que no


retorna nenhum valor, e recebe um simples parmetro chamado pergunta do tipo
int.
void mostrarResultado (int pergunta)
{
// ...
}

Lembre-se de usar a palavra reservada void quando o mtodo no for retornar


nada.

Escrevendo declaraes que retornam valores:

Se voc quer que seu mtodo retorne uma informao (em outras palavras que
retorne um tipo e no um void), voc precisa escrever um cdigo de retorno dentro
do mtodo.

Para isso voc usa a palavra reservada return, seguida da expresso que calcula o
valor a ser retornado. Ateno, porque o resultado da expresso deve ser do
mesmo tipo que o especificado como tipoDeRetorno do mtodo, seno o programa
no vai compilar.

Por exemplo:
int adicionarValores (int numeroPequeno, int numeroGrande)
{
//...
return numeroPequeno + numeroGrande;
}

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 83

Curso Programando com C# e o Visual Studio .NET 2005

Lembre-se do ponto-e-vrgula ao final de cada instruo.

O retorno do mtodo deve estar no final do mtodo porque ele causa a finalizao
do mtodo. Qualquer cdigo depois da linha que faz o retorno no vai ser
executado.

Se voc no quer que seu mtodo retorne informao alguma (do tipo void), voc
pode uma variao da palavra reservada return para causar o encerramento
imediato do mtodo, para isso digite return seguido de ponto-e-vrgula.

Por exemplo:
void mostrarResultado (int pergunta)
{
...
if (...)
return;
...
}

Se o seu mtodo no precisar retornar nada voc pode simplesmente omitir o


return, porque o mtodo vai ser finalizado automaticamente quando a ultima linha
de cdigo do corpo for executada.

Chamando mtodos:

Mtodos existem para serem chamados. Voc chama um mtodo pelo seu nome
para ele executar uma tarefa. Se esse mtodo precisa de informaes para realizar
sua tarefa (parmetros), voc precisa enviar essas informaes pra ele. Se o

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 84

Curso Programando com C# e o Visual Studio .NET 2005

mtodo retornar uma informao, voc precisa ter uma forma de receber essa
informao, como uma varivel, por exemplo.

Especificando a sintaxe para se chamar um mtodo:

nomeDoMetodo (listaDeArgumentos

opcional)

nomeDoMetodo precisa ser exatamente igual ao nome do mtodo que voc


esta chamando, lembre-se que o C# case-sensitive ou seja, diferencia
maisculas de minsculas.

listaDeArgumentos informaes adicionais que o mtodo aceita, voc precisa


passar um valor para cada parmetro e este valor precisa ser compatvel o tipo
correspondente ao parmetro. Se o mtodo que voc esta chamando tiver dois
ou mais parmetros, voc precisa separar os valores com vrgula.

Importante: Voc precisa escrever os parnteses ao final de cada mtodo, mesmo


que l no tiver parmetro algum.

Por exemplo, lembre-se do mtodo adicionarValores:

int adicionarValores (int numeroPequeno, int numeroGrande)


{
//...
return numeroPequeno + numeroGrande;
}

Este mtodo tem dois parmetros entre os parnteses, para cham-lo, faa assim:
adicionarValores(39,3)
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 85

Curso Programando com C# e o Visual Studio .NET 2005

Esta a maneira correta de chamar o mtodo, se voc tentar das seguintes formas
no vai conseguir:

adicionarValores

// Falta parnteses

adicionarValores()

// Falta argumentos

adicionarValores(39)

// Falta um argumento

adicionarValores(39, 3)

// Tipos errados

O mtodo adicionarValores retorna um numero inteiro. Este valor inteiro pode ser
usado em qualquer lugar que uma variavel int puder ser usada.

Por exemplo:
resultado = adicionarValores(39,3);
mostrarResultado(adicionarValores(39,3));

No primeiro exemplo atribumos o retorno a uma varivel chamada resultado.


No segundo atribumos o resultado a outro mtodo, que vai utilizar este resultado
como parmetro para sua execuo.

Lio 14 Entendento Escopo

Voc viu que pode criar uma varivel dentro de um mtodo. A varivel criada na
cdigo que a define, e outros cdigo no mesmo mtodo que vm depois podem
usar a varivel. Em outras palavras, uma varivel pode ser usada s em certos
lugares depois de que ter sido criada. Uma vez que o mtodo terminou, a varivel
desaparece completamente.
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 86

Curso Programando com C# e o Visual Studio .NET 2005

Se uma varivel pode ser usada em um local particular em um programa, ela


parece estar no escopo daquele local. O escopo de uma varivel simplesmente a
regio do programa em que ela utilizvel. O escopo se aplica a mtodos como
tambm a variveis. O escopo de uma varivel ligado ao local da sua declarao
que introduz a mesma no programa, como voc aprender agora.

Criando escopo local com um mtodo.

As chaves determinam onde comea e onde termina o corpo do mtodo. Elas


tambm determinam o escopo do mtodo. Qualquer varivel criada dentro do corpo
do mtodo faz parte do escopo do mtodo. Estas variveis so chamadas de
variveis locais porque so locais ao mtodo onde so declaradas. Elas no
podem ser usadas no escopo nenhum outro mtodo, por isso voc no pode usar
variveis locais para armazenar informaes entre mtodos. Quando um mtodo
acaba sua execuo ele finaliza as variveis que ele criou.

Por exemplo:
class Exemplo
{
void mtodo()
{
int variavel;
...
}
void outroMetodo()
{
variavel = 42;

// isso gera um erro de compilao

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 87

Curso Programando com C# e o Visual Studio .NET 2005

}
}

O erro mostrado acima porque a varivel foi criada dentro de um mtodo


diferente da qual esta sendo usada.

Criando escopo de classe com uma classe:

As chaves determinam onde comea e onde termina o corpo da classe e


determinam seu escopo. Assim sendo, qualquer varivel que voc criar dentro do
corpo da classe (mas que no estejam dentro do mtodo), fazem parte do seu
escopo. Em C# o nome correto desse tipo de varivel campo. Em contraste as
variveis locais voc pode usar os campos para armazenar informaes entre os
mtodos.

Por exemplo:
class Exemplo
{
int campo;

void mtodo()
{
campo = 42;
...
}
void outroMetodo()
{
campo = 44;
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 88

Curso Programando com C# e o Visual Studio .NET 2005

}
}

Perceba que criamos a varivel dentro da classe.

Em um mtodo voc precisa declarar uma varivel antes de us-la. Campos so


diferentes, um mtodo pode usar um campo antes de ser definido algum valor para
ele.

Lio 15 Criando e Chamando Mtodos

1 Crie uma aplicao no Visual Studio .NET do tipo Console Application


chamada Metodo.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 89

Curso Programando com C# e o Visual Studio .NET 2005

2 No painel de cdigo crie digite o seguinte cdigo que cria o mtodo lerDouble
dentro da classe Program.

public double lerDouble(string inicie)


{
Console.Write(inicie);
string linha = Console.ReadLine();
return double.Parse(linha);

Vai ficar assim nosso mtodo:

Esse mtodo escreve no console o texto que enviado para ele como parmetro.
Depois armazena na varivel linha o numero digitado pelo usurio e o retorna.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 90

Curso Programando com C# e o Visual Studio .NET 2005

3 No menu Build clique em Build Metodo ou pressione Ctrl+Shift+B.

Verifique se compila sem nenhum erro.

4 - Vamos criar agora um outro mtodo com as seguintes caractersticas:

Digite o seguinte cdigo, voc pode digit-lo em qualquer local desde que esteja
dentro da Classe no nosso caso a Program.

public int lerInteiro(string inicio)


{
Console.Write(inicio);
string linha = Console.ReadLine();
return int.Parse(linha);
}

Esse mtodo faz a mesma coisa que o mtodo lerDouble, s que retorna uma
integer (inteiro).

Esta ficando assim nosso cdigo:

using System;
using System.Collections.Generic;
using System.Text;

namespace Metodo
{
class Program
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 91

Curso Programando com C# e o Visual Studio .NET 2005

{
public double lerDouble(string inicie)
{
Console.Write(inicie);
string linha = Console.ReadLine();
return double.Parse(linha);

public int lerInteiro(string inicio)


{
Console.Write(inicio);
string linha = Console.ReadLine();
return int.Parse(linha);
}

static void Main(string[] args)


{
}
}
}

Verifique se os dois mtodos esto dentro do escopo da classe Program.

5 Novamente menu Build clique em Build Metodo ou pressione Ctrl+Shift+B.


E verifique se ocorre erros, se ocorrer verifique seu cdigo comparando-o ao acima.
Lembre-se novamente que o C# case-sensitive, ou seja, diferencia maisculas de
minsculas.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 92

Curso Programando com C# e o Visual Studio .NET 2005

6 Vamos criar mais um mtodo, este mtodo possui mais de um parmetro:


Segue as caractersticas do nosso mtodo:

public double calcular(double taxaDiaria, int dias)


{
return taxaDiaria * dias;
}

Esse mtodo retorna a multiplicao dos dois parmetros que so enviados para
ele.

7 Nosso ultimo mtodo tem as seguintes especificaes:

public void escrever(double taxa)


{
Console.WriteLine("A taxa : {0}", taxa * 1.1);
}

Lembre que os mtodos do tipo void no retornam nada.

Esse mtodo escreve no console a multiplicao do parmetro que enviado para


ele com 1.1

Esta ficando assim nosso cdigo:

using System;
using System.Collections.Generic;
using System.Text;

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 93

Curso Programando com C# e o Visual Studio .NET 2005

namespace Metodo
{
class Program
{
public double lerDouble(string inicie)
{
Console.Write(inicie);
string linha = Console.ReadLine();
return double.Parse(linha);

public int lerInteiro(string inicio)


{
Console.Write(inicio);
string linha = Console.ReadLine();
return int.Parse(linha);
}

public double calcular(double taxaDiaria, int dias)


{
return taxaDiaria * dias;
}

public void escrever(double taxa)


{
Console.WriteLine("A taxa : {0}", taxa * 1.1);
}

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 94

Curso Programando com C# e o Visual Studio .NET 2005

static void Main(string[] args)


{
}
}
}

8 Clique em Build Metodo no menu Build para verificar se compila


corretamente. Tudo certo? Vamos usar os mtodos que criamos.

Chamando Mtodos

Podemos chamar mtodos dentro de mtodos, como faremos a seguir.

9 Crie um novo mtodo que no retorna nada, ou seja, do tipo void. De o nome
dele de Executar

O cdigo do nosso novo mtodo deve ficar assim:

public void executar()


{
double taxadiaria = lerDouble("Digite a taxa diaria: ");
int dias = lerInteiro("Digite o numero de dias: ");
escrever(calcular(taxadiaria,dias));
}

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 95

Curso Programando com C# e o Visual Studio .NET 2005

Na primeira linha de cdigo criamos uma varivel do tipo double e atribumos a ela
o mtodo lerDouble.

Na segunda linha criamos uma varivel do tipo int e atribumos a ela o mtodo
lerInteiro.

Na terceira linha de cdigo chamamos o mtodo escrever e passamos para ele


como parmetro o mtodo calcular.

10 No mtodo Main (primeiro mtodo executado pelo programa) digite o


seguinte cdigo:

(new Class1()).executar();

Isso vai executar o mtodo executar assim que o programa for iniciado

O mtodo Main vai ficar assim:

static void Main(string[] args)


{
(new Program()).executar();
}

11 Pressione Ctrl+F5 para executar o programa.

O Visual Studio compila o programa e o executa. Uma janela console aparece.


Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 96

Curso Programando com C# e o Visual Studio .NET 2005

12 Para taxa diria digite 315 e pressione Enter.

13 Para numero de dias digite 15 e pressione Enter.

O programa vai escrever a seguinte mensagem no console:

A taxa : 5197,5

14 Pressione qualquer tecla para retornar ao Visual Studio.

Vou digitar o cdigo fonte todo utilizado para voc poder verificar caso haja algum
problema e vamos depurar nosso programa para entender melhor como ele
funciona.

using System;
using System.Collections.Generic;
using System.Text;

namespace Metodo
{
class Program
{
public double lerDouble(string inicie)
{
Console.Write(inicie);
string linha = Console.ReadLine();
return double.Parse(linha);

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 97

Curso Programando com C# e o Visual Studio .NET 2005

public int lerInteiro(string inicio)


{
Console.Write(inicio);
string linha = Console.ReadLine();
return int.Parse(linha);
}

public double calcular(double taxaDiaria, int dias)


{
return taxaDiaria * dias;
}

public void escrever(double taxa)


{
Console.WriteLine("A taxa : {0}", taxa * 1.1);
}

public void executar()


{
double taxadiaria = lerDouble("Digite a taxa diaria: ");
int dias = lerInteiro("Digite o numero de dias: ");
escrever(calcular(taxadiaria, dias));
}

static void Main(string[] args)


{
(new Program()).executar();
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 98

Curso Programando com C# e o Visual Studio .NET 2005

}
}
}

Visual Studio .NET depurador

O depurador ou debug um programa desenvolvido para ajudar o programador na


verificao e correo de erros. Ele vem embutido no Visual Studio e vamos utilizlo para compreender melhor como funciona nosso programa, ele permite a
execuo do programa passo-a-passo.

15 Localize no cdigo o mtodo executar.

16 Mova o mouse a primeira linha de cdigo do mtodo executar. a seguinte


linha:

double taxadiaria = lerDouble("Digite a taxa diaria: ");

17 Clique com o boto direito do mouse sobre ela, no menu que se abre clique
em Run To Cursor.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 99

Curso Programando com C# e o Visual Studio .NET 2005

O programa executado at chegar nessa linha de cdigo. Neste momento a


execuo pausada e uma seta amarela indica que chegou linha selecionada.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 100

Curso Programando com C# e o Visual Studio .NET 2005

18 Na barra de ferramentas clique em Step Into.

A linha de execuo pula para a primeira linha de cdigo do mtodo lerDouble.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 101

Curso Programando com C# e o Visual Studio .NET 2005

Como vimos no mtodo executar nossa primeira linha de cdigo cria uma varivel
do tipo Double e atribui a ela o resultado do mtodo lerDouble. Quando essa
linha de cdigo executada o mtodo lerDouble chamado e o resultado do seu
cdigo vai ser atribudo a varivel taxaDiaria, se a variavel for de um tipo
diferente do tipo que o mtodo vai retornar ento temos um erro.

19 Na barra de ferramentas debug clique em Step Out.

O programa vai exibir no console a mensagem Digite a taxa diria:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 102

Curso Programando com C# e o Visual Studio .NET 2005

20 Digite 315 e pressione Enter.

O controle retorna ao Visual Studio e a seta amarela fica sobre a linha que chama o
mtodo lerDouble no mtodo executar. Ou seja, ele executou o mtodo
lerDouble e voltou para o mtodo executar.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 103

Curso Programando com C# e o Visual Studio .NET 2005

21 Clique novamente em Step Into.

A seta se move para a segunda linha de cdigo do mtodo executar.

22 Clique novamente em Step Into.

A seta se move agora para a primeira linha de cdigo do mtodo lerInteiro.

23 Clique em Step Out.

24 Digite 15 e pressione Enter.

A seta volta agora para a segunda linha de cdigo do mtodo executar.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 104

Curso Programando com C# e o Visual Studio .NET 2005

25 Clique em Step Into.

A seta se move para a terceira linha de cdigo do mtodo executar.

26 Clique em Step Into.

A seta se move para a primeira linha de cdigo do mtodo calcular.

27 Clique em Step Out.

A seta volta para a terceira linha de cdigo do mtodo executar.

28 Clique em Step Into.

Perceba que agora a seta se move para a primeira linha de cdigo do mtodo
escrever. Isso aconteceu porque na seguinte linha de cdigo chamamos um
mtodo e passamos como parmetro para ele um outro mtodo.

escrever(calcular(taxadiaria,dias));

Aqui o mtodo escrever recebe como parmetro o mtodo calcular, antes de ser
executado o mtodo escrever executado o mtodo calcular, seu resultado ento
enviado ao mtodo escrever para ser processado.

29 Clique agora em Step Out.

O cursor se move para o fim do mtodo executar. O resultado do programa


exibido na tela conforme a figura:
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 105

Curso Programando com C# e o Visual Studio .NET 2005

Parabns, voc escreveu mtodos e os chamou com sucesso, alem disso usou o
depurador do Visual Studio .NET.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 106

Curso Programando com C# e o Visual Studio .NET 2005

Mdulo 4
Estruturas de Deciso

Lio 16 Entendendo as Estruturas de Deciso

A ESTRUTURA DE DECISO sem dvida, a mais utilizada na programao. O


objetivo identificar o contedo de uma condio e direcionar o fluxo do programa
para um determinado clculo, rotina, desvio, funo, etc.

Primeiramente vamos entender o que uma EXPRESSO CONDICIONAL. Esta


uma expresso que sempre retorna um valor boleano, ou seja, VERDADEIRO ou
FALSO.

Exemplo:

Preo menor que 100.

Se preo for menor que 100 ento o resultado da expresso acima VERDADEIRO.
Caso contrario o resultado FALSO.

Voc pode usar os seguintes operadores para fazer comparaes em C#:


(SUPONHA QUE A VARIAVEL SALARIO TENHA O VALOR 1200)

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 107

Curso Programando com C# e o Visual Studio .NET 2005

OPERADOR

QUER DIZER

EXEMPLO

RESULTADO

==

Igual a

Salario == 100

FALSO

!=

Diferente de

Salario != 100

VERDADEIRO

>

Maior que

Salario > 100

VERDADEIRO

<

Menor que

Salario < 100

FALSO

>=

Maior ou igual a

Salario >= 100

VERDADEIRO

<=

Menor ou igual a

Salario <= 100

FALSO

Ento a expresso que usamos no exemplo acima ficaria assim:

Preo < 100

Agora que voc j sabe o que uma expresso condicional vamos estudar o que
uma ESTRUTURA DE DECISO.

Uma ESTRUTURA DE DECISO nada mais que do que um bloco de cdigo que
utiliza as expresses condicionais para tomar decises que orientam qual cdigo
deve ser executado.

Lio 17 Usando o if

A primeira estrutura de deciso que iremos estudar o IF, veja a sintaxe a seguir:

if ( expressocondicional )
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 108

Curso Programando com C# e o Visual Studio .NET 2005

{
bloco-de-codigo1
}
else
{
bloco-de-codigo2
}

Se o resultado da expresso condicional for VERDADEIRO ento o bloco-de-codigo1


ser executado, se a expresso for FALSO, ento o bloco-de-codigo2 ser
executado.

Se o bloco-de-codigo1 e bloco-de-codigo2 for apenas uma linha de cdigo no


necessrio usar os colchetes, como nos exemplos abaixo.

Veja o seguinte exemplo:

double Salario = 1200;

if (Salario > 1000)


Salario *= 1.1;

Existe uma varivel chamada Salario que est definida e contm o valor 1200.
Como toda condio retorna apenas verdadeiro ou falso, verificado se o
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 109

Curso Programando com C# e o Visual Studio .NET 2005

valor maior que 1000, e caso seja verdadeiro ser somado 10% ao Salario. Se
Salario for menor que 1000 nada ser executado.

Vamos a mais alguns exemplos para facilitar o entendimento.

double Salario = 1200;

if (Salario < 500)


Salario += 50;
else
Salario += 100;

Aqui verificado se o valor menor que 500 e dependendo da condio somado


50 ou 100, pois h o Else. Ento se a varivel for menor que 500 adicionamos nela
o valor 50, seno adicionamos 100.

double Salario = 1200;

if (Salario < 500)


Salario += 50;
else if ((Salario >= 500) && (Salario < 2000))
Salario += 100;
else
Salario += 250;

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 110

Curso Programando com C# e o Visual Studio .NET 2005

J no exemplo acima existem 3 condies, onde o primeiro IF soma 50, o segundo


100 e o ELSE 250. O Else sempre executado quando nenhuma expresso
verdadeira.

possvel avaliar diversos else ifs com uma determinada expresso. Como no
exemplo abaixo:

double Salario = 1200;

if (Salario < 500)


Salario += 50;
else if ((Salario >= 500) && (Salario < 600))
Salario += 100;
else if ((Salario >= 500) && (Salario < 700))
Salario += 110;
else if ((Salario >= 500) && (Salario < 800))
Salario += 120;
else
Salario += 250;

Perceba que no bloco de cdigo acima usamos o &&.

O && usado quando precisamos testar mais de uma expresso condicional.

Exemplo:

else if ((Salario >= 500) && (Salario < 600))

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 111

Curso Programando com C# e o Visual Studio .NET 2005

Nesta linha testamos se o Salario maior ou igual a 500 e o Salario menor que
600.

Ento se o Salario for 553 a expresso acima VERDADEIRA, caso contrario


FALSA.

O && conhecido como um OPERADOR LGICO, temos quatro deles como mostra
a tabela a seguir:

OPERADOR LGICO

QUER DIZER

&& (And)

Se duas expresses condicionais forem


verdadeiras o resultado verdadeiro.

|| (Or)

Se qualquer expresso condicional


verdadeira ento o resultado
verdadeiro.

! (Not)

Se a expresso condicional for falsa o


resultado verdadeiro. Se a expresso
condicional for verdadeira o resultado
falso.

Algumas expresses complexas podem exigir mais de um operador lgico. A


seqncia de execuo neste tipo de expresso primeiro, os operadores
matemticos, depois os operadores de comparao e s ento os operadores
lgicos.

Vamos a alguns exemplos de como utilizar os operadores lgicos:


Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 112

Curso Programando com C# e o Visual Studio .NET 2005

EXPRESSO LGICA

RESULTADO

Veiculo = Bicicleta && Preo < 300

Verdadeiro (Se as duas condies forem


verdadeiras)

Veiculo = Carro || Preo < 500

Verdadeiro (Se uma das condies


forem verdadeiras)

! Preo < 100

Verdadeiro (Se a condio for falsa)

Vamos fazer um programinha que valida o usurio, verificando se ele mesmo


atravs do seu nome e senha.

1 Entre no Visual Studio e crie uma aplicao chamada EstruturaDeDecisao do


tipo Windows Application.

2 Arraste para o Form os seguintes controles:

2 - Label
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 113

Curso Programando com C# e o Visual Studio .NET 2005

2 TextBox
1 Button

3 Mude as propriedades dos controles como a tabela abaixo:

Controle

Propriedade

Valor

Label1

Text

Nome

Label2

Text

Senha

Textbox1

Text

Textbox2

Text

Button1

Text

Validar

4 Organize-os para ficarem assim:

5 De um clique duplo no button1 e digite o seguinte cdigo:


Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 114

Curso Programando com C# e o Visual Studio .NET 2005

string Nome = textBox1.Text;


string Senha = textBox2.Text;

if ((Nome == "Moroni") && (Senha == "123"))


MessageBox.Show("Bem Vindo Moroni");
else
{
MessageBox.Show("Usuario Invalido");
Close();

Voc pode substituir o valor do nome para o seu nome e sua senha.

Perceba que tivemos que abrir e fechar colchetes ( {} ) depois do else,


sempre temos que fazer isso quando tivermos mais que uma linha de
cdigo, isso se aplica ao else, e tambm depois do if, se tivssemos mais
de uma linha de cdigo no bloco de cdigo acima teramos que fazer o
mesmo.

6 Execute o programa.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 115

Curso Programando com C# e o Visual Studio .NET 2005

7 Digite Moroni em nome (ou seu nome) e a senha 123.

8 Clique em validar.

executado o seguinte cdigo:

MessageBox.Show("Bem Vindo Moroni");


Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 116

Curso Programando com C# e o Visual Studio .NET 2005

Fazendo com que a seguinte mensagem aparea.

9 Clique em Ok.

10 Digite outro valor qualquer na caixa de texto e clique em OK.

E executado o seguinte cdigo:

MessageBox.Show("Usuario Invalido");
Close();

Fazendo com que a seguinte mensagem aparea.

E que o programa seja encerrado.

Em resumo:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 117

Curso Programando com C# e o Visual Studio .NET 2005

Declaramos duas variveis e demos as elas os valores dos controles de texto.


Depois testamos se o valor do nome era Moroni e a Senha 123, voc pode
substituir o valor para o seu nome e sua senha. Se o resultado da expresso for
verdadeira ento ele da a mensagem de bem vindo, caso contrario ele da a
mensagem de usurio invalido e sai do programa.

Lio 18 Usando o switch

A segunda estrutura de deciso que iremos estudar conhecida como switch.

Essa estrutura de deciso seleciona o cdigo a ser executado baseado no valor de


uma expresso.

A sintaxe a seguinte:

switch (testexpression)
{
case constant-expression:
statements
break:
default:
statements
}
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 118

Curso Programando com C# e o Visual Studio .NET 2005

O funcionamento ocorre da seguinte maneira: a expresso obtida no switch e


para cada Case existe uma condio a ser validada. Caso o Case seja verdadeiro,
ento a linha ou o bloco de cdigo executado. Se nenhum dos Cases for vlido,
ento default executado. O default opcional e voc pode ter quantos Cases for
necessrio. A cada Case preciso declarar o break, seno o programa
continua avaliando todos os Cases.

Veja o exemplo:

int diaDaSemana = 3;

switch (diaDaSemana)
{
case 1:
MessageBox.Show("Domingo");
break;
case 2:
MessageBox.Show("Segunda-Feira");
break;
case 3:
MessageBox.Show("Tera-Feira");
break;
case 4:
MessageBox.Show("Quarta-Feira");
break;
case 5:
MessageBox.Show("Quinta-Feira");

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 119

Curso Programando com C# e o Visual Studio .NET 2005

break;
case 6:
MessageBox.Show("Sexta-Feira");
break;
case 7:
MessageBox.Show("Sabado");
break;
}

Primeiro criamos uma varivel do tipo int e atribumos a mesma o valor 3.

A seguir iniciamos a estrutura colocando como expresso de teste o valor da


varivel.

O primeiro Case verifica se o valor da varivel ou expresso de teste 1. Se for o


cdigo que escreve na tela o texto Domingo executado e a estrutura finalizada
no verificando os outros Cases. Caso contrario ele vai pro prximo case e segue
como o primeiro at o fim da estrutura. Se nenhum dos cases se enquadrar no
valor da expresso de teste nenhum cdigo ser executado, para isso que serve o
default. No prximo exemplo vamos apenas programar o uso do default:

int diaDaSemana = 3;

switch (diaDaSemana)
{
case 1:
MessageBox.Show("Domingo");
break;
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 120

Curso Programando com C# e o Visual Studio .NET 2005

case 2:
MessageBox.Show("Segunda-Feira");
break;
case 3:
MessageBox.Show("Tera-Feira");
break;
case 4:
MessageBox.Show("Quarta-Feira");
break;
case 5:
MessageBox.Show("Quinta-Feira");
break;
case 6:
MessageBox.Show("Sexta-Feira");
break;
case 7:
MessageBox.Show("Sabado");
break;
default:
MessageBox.Show("Dia Invlido");
break;

Aqui se o resultado da expresso de teste no for verdadeiro em nenhum Case,


ento ser executado o default, escrevendo na tela que o valor informado
invalido, o que no o caso para o nosso exemplo, j que o valor da expresso se
enquadra no Case 3 escrevendo Tera-Feira.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 121

Curso Programando com C# e o Visual Studio .NET 2005

Para entender ainda melhor vamos fazer um exemplo no Visual Studio. Esse
exemplo lista todos os meses do ano e quando selecionado um ms ele exibe uma
mensagem na tela com o numero de dias que o ms selecionado possui.

1 - Crie um novo projeto chamado EstruturaDeDecisao2, do tipo Windows


Application.

2 Arraste um listBox para o Form1. Na propriedade Items na janela


Properties digite todos os meses do ano como abaixo:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 122

Curso Programando com C# e o Visual Studio .NET 2005

O Form1 vai ficar assim:

3 De um clique duplo sobre o listBox1 e digite o seguinte cdigo:


Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 123

Curso Programando com C# e o Visual Studio .NET 2005

switch (Convert.ToString(listBox1.SelectedItem))
{
case "Fevereiro" :
MessageBox.Show ("Este mes tem 28 dias");
break;
case "Abril":
case "Junho":
case "Setembro":
case "Novembro":
MessageBox.Show ("Este mes tem 30 dias");
break;
default:
MessageBox.Show ("Este mes tem 31 dias");
break;
}

Vai ficar assim:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 124

Curso Programando com C# e o Visual Studio .NET 2005

4 Execute a aplicao (pressione F5).

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 125

Curso Programando com C# e o Visual Studio .NET 2005

5 Clique sobre um ms, por exemplo, Fevereiro, note a janela que exibe o
numero de dias que tem esse ms.

Nosso exemplo simples, criamos uma estrutura switch e demos a ela como
expresso de teste o valor do item selecionado na listBox1. Usamos o mtodo
Convert para converter para string o valor obtido da listBox1.

O primeiro Case verifica se o item selecionado ou valor da expresso Fevereiro.


Se sim ento mostra a caixa de dialogo com a mensagem dizendo que o ms possui
28 dias, seno vai para o prximo Case que verifica se o item selecionado Abril, e
assim sucessivamente at Novembro. Note que s implementamos cdigo em
Novembro, agrupamos assim quando os cases forem executar o mesmo bloco de
cdigo. Se o valor da expresso no se enquadrar em nenhum item da lista ento
ele vai para o default que executa o cdigo com a mensagem de que o ms possui
31 dias.

6 Vamos fazer uma mudana no nosso switch agora, siga o exemplo abaixo:

switch (listBox1.SelectedIndex + 1)
{
case 2 :
MessageBox.Show ("Este mes tem 28 dias");
break;
case 4:
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 126

Curso Programando com C# e o Visual Studio .NET 2005

case 6:
case 9:
case 11:
MessageBox.Show ("Este mes tem 30 dias");
break;
default:
MessageBox.Show ("Este mes tem 31 dias");
break;
}

Neste exemplo, ao invs de pegarmos o texto selecionado no listBox agora


estamos pegando o ndice.

O ndice um numero que atribudo a cada valor na lista comeando por zero,
ento Janeiro tem ndice 0, Fevereiro 1 e assim por diante.

Como sabemos que Janeiro o primeiro ms do ano e fevereiro o segundo e assim


por diante adicionamos 1 ao valor do ndice. Isso apenas para no confundirmos.

Lembre-se do seguinte a respeito do switch:

O switch deixa o cdigo mais estruturado em relao ao uso de vrios else


if seguidos;

Voc s pode usar o switch com tipos de dados primitivos, como: (int,
long, float, double, decimal, string, char, bool). Para usar outros tipos
de dados use o if;

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 127

Curso Programando com C# e o Visual Studio .NET 2005

A expresso do case precisa ser uma expresso nica, em outras palavras,


no permitido escrever duas expresses em um mesmo case.

Voc precisa repetir a sintaxe do case para cada valor individual que voc
quer avaliar, mesmo que ele execute o mesmo bloco de cdigo, veja o
ultimo exemplo.

Voc deve usar o break aps cada bloco de cdigo seno ele vai continuar
avaliando os outros cases.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 128

Curso Programando com C# e o Visual Studio .NET 2005

Mdulo 5
Estruturas de Repetio

As estruturas de repetio tambm conhecidas como estruturas de looping


permitem que voc executa uma linha ou bloco de cdigo repetidamente at que
uma condio seja verdadeira.

O uso de loopings nos programas uma prtica comum, pois em muitos casos
preciso percorrer uma determinada coleo de dados, um conjunto de registros,
valores de matrizes, etc.

Lio 19 Usando o while

O looping While executado sempre associado a uma condio, ou seja, a cada


passagem pelo looping a condio avaliada. Veja a sintaxe a seguir:

while ( booleanExpression )
statement

Vamos fazer um exemplo para voc compreender melhor o funcionamento do


while.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 129

Curso Programando com C# e o Visual Studio .NET 2005

1 - Crie um novo projeto no Visual Studio, novamente do tipo Windows


Application, chame o projeto de while.

2 - Adicione no Form1 os seguintes controles:

1 Button

1 ListBox

3 - Mude a propriedade Text do Button1 para Loop.

4 - Organize os controles como a figura abaixo:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 130

Curso Programando com C# e o Visual Studio .NET 2005

5 - De um clique duplo sobre o Button1 e digite o seguinte cdigo:

int contador = 0;
while (contador < 20)
{
contador++;
listBox1.Items.Add(contador);
}

Vai ficar assim:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 131

Curso Programando com C# e o Visual Studio .NET 2005

Esse nosso cdigo, vamos estud-lo um pouco:

int contador = 0;
while (contador < 20)
{
contador++;
listBox1.Items.Add(contador);
}

Na primeira linha declaramos uma varivel chamada contador do tipo integer e


atribuimos a essa variavel o valor 0.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 132

Curso Programando com C# e o Visual Studio .NET 2005

A segunda linha comea o While com a condio. Essa linhar quer dizer enquanto
contador for menor que 20, ou seja ele vai executar o loop ou o cdigo que esta
entre os colchetes at que o conteudo da varivel contador seja igual ou maior
que 20.

A linha quatro soma 1 ao conteudo da varivel contador, a linha a seguir tem o


mesmo significado:

contador = contador + 1

Entretanto da forma que fizemos no nosso exemplo mais elegante porque no


precisamos repetir o nome da varivel, se apenas fizssemos assim:

contador = 1

Ele atribuiria 1 ao contedo da varivel e o nosso looping se tornaria um loop


infinito ou seja nunca ia parar de rodar porque nunca entraria na condio que o
faz parar. Cuidado com esse tipo de loop, seus loops nunca devem ser infinitos.

A linha 5 atribui ao ListBox o valor da varivel.

Fique atento para o seguinte quando estiver utilizando o WHILE:

A expresso condicional deve retornar sempre um valor Boolean ou seja,


verdadeiro o falso.

A expresso condicional tambm deve estar sempre entre parnteses.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 133

Curso Programando com C# e o Visual Studio .NET 2005

Se na primeira passagem o resultado da empresso condicional for falso, o


cdigo do While no ser executado.

Se voc for usar mais de uma linha de cdigo dentro do while precisa
coloc-lo entre colchetes, seno no.

Lio 20 Usando o do

O Do semelhante ao while, ou seja, executado sempre associado a uma


condio, novamente a cada passagem pelo looping a condio avaliada. S que
no Do a condio colocada no final, fazendo com que mesmo que o resultado seja
falso da expresso booleana o cdigo seja executado pelo menos uma vez. Caso
precise abandonar o looping, use o break, que opcional. Veja a sintaxe (no
esquea do ponto-e-virgula no final):

do
statement
while (booleanExpression);

Vamos fazer uma modificao no exercicio do item anterior para compreender


como funciona o break.

1 - Se o exemplo anterior no estiver aberto no Visual Studio, abra-o.

2 - V para o cdigo do button1, ele deve ser o seguinte:


Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 134

Curso Programando com C# e o Visual Studio .NET 2005

int contador = 0;
while (contador < 20)
{
contador++;
listBox1.Items.Add(contador);
}

3 - Mude para o seguinte:

int contador = 0;
while (contador < 20)
{
contador++;
if (contador == 10)
{
break;
}
listBox1.Items.Add(contador);
}

Perceba que as modificaes foram minimas, apenas inserimos um If que verifica


se o conteudo da variavel contador 10, se for ele executa o break que finaliza
imediatamente o loop.

4 - Execute a aplicao:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 135

Curso Programando com C# e o Visual Studio .NET 2005

5 - Clique em Loop.

Perceba que ele nem chega a escrever o nmero 10 por que a linha de cdigo que
responsvel por isso esta depois do If que finalizou o loop.

6 Agora mude o valor inicial da varivel 0 para 20.

7 Execute a aplicao e clique em Loop.


Perceba que no aparece nada, porque o resultado da expresso condicional
comea como false, j que o valor no menor que 20, e sim igual a 20.

8 Vamos usar o Do agora, mude o cdigo para o seguinte:

int contador = 20;


do
{
contador++;
listBox1.Items.Add(contador);
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 136

Curso Programando com C# e o Visual Studio .NET 2005

if (contador == 10)
{
break;
}
}
while (contador < 20);

9 - Execute a aplicao e clique em Loop.

Se a expresso estivesse encima nada apareceria, mas agora aparece o 21, isso
porque ele executou uma vez o loop antes de avaliar a expresso, algumas vezes
esse tipo de loop pode ser necessrio. Fique atento.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 137

Curso Programando com C# e o Visual Studio .NET 2005

Lio 21 Usando o for

O For usado quando sabemos o nmero de vezes que iremos executar o Loop. O
For precisa de um contador que normalmente uma varivel que controla o
nmero de vezes que o loop ser executado..

A varivel contador pode ser inicializada antes do For ou na prpria declarao.

Se durante o processamento voc quiser abandonar o looping, ter que usar o


break. A sintaxe do For a seguinte:

for (initialization; booleanExpression; updateControlVariable)

statement

1 - Crie uma nova aplicao do tipo Windows Application com nome For.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 138

Curso Programando com C# e o Visual Studio .NET 2005

2 - Arraste para o Form1 um Button.

3 - Mude a propriedade Text do Button1 para Beep.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 139

Curso Programando com C# e o Visual Studio .NET 2005

4 - De um clique duplo sobre o boto e no digite o seguinte cdigo para o evento


do boto:

for (int i = 1; i <= 4; i++)


{
MessageBox.Show(i.ToString());
}

Vai ficar assim:

5 - Execute a aplicao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 140

Curso Programando com C# e o Visual Studio .NET 2005

6 - Clique no boto Beep.

Vamos dar uma avaliada no cdigo:

for (int i = 1; i <= 4; i++)


{
MessageBox.Show(i.ToString());
}

Quando inicializamos o for, primeiro iniciamos uam varivel do tipo integer e damos
o valor 1 para ela, demos o nome de i para essa variavel. Depois colocamos uma
expresso booleana que ser responsvel por avaliar o numero de vezes que o for
ser executado, nossa expresso diz que o for deve ser executado enquanto o
contedo de da varial i for menor ou igual a 4. Para finalizar a inicializao do For
dizemos que a cada passada o contedo da varivel i deve ser acrescentado em 1.
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 141

Curso Programando com C# e o Visual Studio .NET 2005

7 - Mude o cdigo do boto para o seguinte:

for (int i = 1; i <= 25; i+=5)


{
MessageBox.Show(i.ToString());
}

8 - Execute a aplicao e clique em Beep.

Perceba que o i+= 5 fez com que o nmero adicionado a variavel a cada passada
do loop 5 ao invs de 1.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 142

Curso Programando com C# e o Visual Studio .NET 2005

Lio 22 Conhecendo o foreach

O Foreach usado em casos onde voc precisa percorrer uma coleo de dados.
No Foreach voc no precisa verificar o limite do looping, pois isto j est implcito
na prpria coleo, ou seja, voc se preocupa apenas em manipular o objeto atual.
Caso tenha dvida no uso, pense da seguinte forma: Para cada elemento contido
na coleo, faa algo. Vamos estud-lo em detalhe quanto falarmos sobre Arrays e
Colees.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 143

Curso Programando com C# e o Visual Studio .NET 2005

Mdulo 6
Gerenciando Erros e Excees

O ambiente de desenvolvimento do Visual Studio .Net contm muitas ferramentas


que nos ajudam a resolver os erros em nossos programas.

Lio 23 Conhecendo os trs tipos de erros

Trs tipos de erros podem ser encontrados em seus programas, so eles: erros de
sintaxe, erros de Runtime e erros lgicos, vamos entender cada um deles.

Erros de sintaxe ou erro de compilao:

Acontece quando voc digita de forma errada uma palavra reservada ou comando
do C#. Voc no consegue executar seu programa quando tem esse tipo de erro no
seu cdigo.

Erros de Runtime:

Acontecem quando o programa para de executar derrepente durante sua execuo,


chamamos essa parada de exceo.
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 144

Curso Programando com C# e o Visual Studio .NET 2005

Erros de runtime acontecem quando alguma coisa interfere na correta execuo do


seu cdigo, por exemplo, quando seu cdigo precisa ler um disquete que no esta
no drive, ao no encontrar o disquete ele gera uma exceo e para bruscamente a
execuo, esse tipo de erro pode e deve ser tratado.

Erros lgicos:

Esse o tipo de erro mais dificil de ser tratado. um erro humano. O cdigo
funciona perfeitamente, mas o resultado errado. Exemplo, uma funo que deve
retornar um valor, s que o valor retornado esta errado, o erro neste caso se
encontra na lgica da funo que esta processando o clculo. A grosso modo
como se o seu programa precise fazer um calculo de 2 + 2 em que o resultado
certo 4 mas ele retorna 3. Quando uma conta simples fcil de identificar mas
e se o calculo for complexo?

Lio 24 Encontrando erros com o Visual


Studio.NET 2005

1 - Entre no Visual Studio.NET e crie uma nova aplicao, novamente do tipo


Windows Application chamada Debug.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 145

Curso Programando com C# e o Visual Studio .NET 2005

2 - Arraste para o Form1 os seguintes controles e organize-os como a figura


abaixo:

1 Button

2 TexBox

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 146

Curso Programando com C# e o Visual Studio .NET 2005

At agora sempre usamos a janela Properties para setar as propriedades dos


controles, desta vez vamos fazer de uma outra forma.

De um clique duplo sobre o Form1 em qualquer lugar, desde que no seja encima
de nenhum controle. Vai aparecer o cursor dentro do seguinte cdigo:

private void Form1_Load(object sender, EventArgs e)


{

Tudo que estiver dentro deste procedimento, chamado Form1_Load ser executado
assim que o programa for executado.

3 - Digite o seguinte cdigo dentro do procedimento:

button1.Text = "Testar";

Vai ficar assim:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 147

Curso Programando com C# e o Visual Studio .NET 2005

4 - Execute a aplicao.

Note que a propriedade text do button1 foi modificada como se a tivssemos feito
na janela properties.

Para usar o Debug no necessrio setar as propriedades assim, pode ser pela
janela Properties apenas entenda que as propriedades podem ser modificadas em
tempo de execuo, voc pode inclusive setar propriedades em um evento de
clique de boto.

5 - De um clique duplo sobre o Button1 e digite o seguinte cdigo:

int idade;
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 148

Curso Programando com C# e o Visual Studio .NET 2005

idade = int.Parse(textBox1.Text);
if (idade > 13 && idade < 20)
{
textox2.Text = "Voc adolescente";
}
else
{
textBox2.Text = "Voc no adolescente";
}

Nosso programa vai ler o conteudo no TextBox1, se o valor for um numero entre
13 e 20 ele vai escrever no TextBox2 a mensagem que voc um adolescente,
seno vai escrever que voc no um adolescente.

6 -Execute sua aplicao. A seguinte mensagem deve aparecer:

A caixa de dlogo esta dizendo que sua aplicao tem erros, se voc clicar em sim
ele tenta executar a aplicao mesmo com os erros, clicando em no ele para a
tentativa de execuo do programa.

7 Clique em No.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 149

Curso Programando com C# e o Visual Studio .NET 2005

Agora no painel de cdigo perceba que depois da linha de inicio do If o cdigo que
seta a propriedade Text do TextBox2 tem o nome do controle sublinhado. Esse
um erro de sintaxe, o nome do controle esta digitado errado, esta faltando um B.

Veja a prxima figura:

Repare na janela Error List.

Repare que o Visual Studio ajuda na deteco do erro.

8 - De um clique duplo sobre a mensagem The name textox2 does not exist in
the context

Ele vai direto para a linha de cdigo com problema.


Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 150

Curso Programando com C# e o Visual Studio .NET 2005

9 - Vamos resolver o erro. Acrescente o b que esta faltando na palavra TextBox2.

10 - Execute a aplicao. Agora tudo ocorre certo no mesmo?

11 - Digite 21 na primeira caixa de texto e clique em Testar.

Ele escreve a mensagem Voc no adolescente, porque ele entra no else do IF,
j que 21 no esta entre 13 e 20.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 151

Curso Programando com C# e o Visual Studio .NET 2005

12 - Digite agora o numero 17 e clique em Testar.

Agora como o nmero entra na condio a mensagem muda para Voc


adolescente.

13 - Feche a aplicao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 152

Curso Programando com C# e o Visual Studio .NET 2005

14 - V ao painel de cdigo novamente.

15 - Localize a seguinte linha de cdigo.

idade = int.Parse(textBox1.Text);

16 - Clique sobre esta linha com o boto direito do mouse e selecione a opo
Insert BreakPoint, como na figura abaixo:

Essa linha de cdigo vai ficar assim:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 153

Curso Programando com C# e o Visual Studio .NET 2005

O BreakPoint um ponto de parada. Voc pode colocar vrios destes no seu


cdigo.

17 - Execute o programa agora.

18 - Digite 21 na primeira caixa de texto e clique em Testar.

O programa a execuo exatamente na linha do BreakPoint.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 154

Curso Programando com C# e o Visual Studio .NET 2005

Aparee tambm uma nova barra de ferramentas:

Essa a barra de ferramentas do depurador ou debug, como o nome diz ela


permite que depuremos nosso cdigo linha-a-linha, permitindo uma analise
detalhada.

19 - Na barra de ferramentas debug, clique no boto Step Into.

Ele executa a linha marcada e vai para a prxima linha.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 155

Curso Programando com C# e o Visual Studio .NET 2005

Neste momento a varivel idade j tem o contedo do TextBox1. Passe o mouse


sobre o texto idade em qualquer lugar do cdigo para ver o contedo da varivel.

A seta amarela representa a prxima linha de cdigo que ser executada. Neste
momento a linha amarela ainda no foi executada.

20 - Clique em Locals. A janela Locals tambm mostra informaes do programa,


como o valor da varivel idade.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 156

Curso Programando com C# e o Visual Studio .NET 2005

21 - Clique em Step Into at que todo o cdigo seja executado.

Note que depois que ele avalia o IF como no entra na condio ele j pula para o
Else.
O boto Step Out, pula para o prximo BreakPoint ou termina a execuo.

O boto Stop Debugging, para o debug e encerra a execuo do programa.

22 - Pare a execuo.

V novamente a linha de cdigo marcada com o BreakPoint.

23 - Clique com o boto direito do mouse e selecione a opo Delete BreakPoint.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 157

Curso Programando com C# e o Visual Studio .NET 2005

Isso remove a marcao.

O debug muito til para encontrar erros lgicos, supondo que os adolecentes so
pessoas de faixa etria que vai de 13 a 19 anos procure localizar o erro lgico no
programa que acabamos de criar.

Lio 25 Usando a janela Watch

1 - No programa que criamos no item anterior, marque um BreakPoint novamente


na linha:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 158

Curso Programando com C# e o Visual Studio .NET 2005

idade = int.Parse(textBox1.Text);

2 - Execute o programa.

3 - Digite 25 na primeira caixa de texto e clique em Testar.

O programa para no BreakPoint. E o Visual Studio entra no que chamamos de


Break Mode.

Para usar a janela Watch voc precisa estar em Break Mode.

4 - Clique na guia Watch 1, no tem nada na janela Watch ainda.

5 - Clique com o boto direito sobre o nome da varivel idade, e selecione Add
Watch, como na figura:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 159

Curso Programando com C# e o Visual Studio .NET 2005

adicionado uma linha com o nome da varivel e seu valor na janela Watch.

O valor 0 e o tipo da varivel tido como integer.

6 - Adicione tambm TextBox2.Text a janela Watch.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 160

Curso Programando com C# e o Visual Studio .NET 2005

7 - Selecione a expresso idade < 20 e adicione a janela Watch.

Sua janela Watch deve estar assim:

Agora a cada passo do programa voc vai poder acompanhar o valor de cada um
destes itens.

8 - Clique no boto Step Into na barra de ferramentas Debug. Ao invs de clicar


no boto voc pode apertar F11 no teclado.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 161

Curso Programando com C# e o Visual Studio .NET 2005

O valor da varivel idade mudado para 25 e a expresso idade < 20 avaliada


como False. Os valores so modificados na janela Watch em vermelho porque
acabaram de ser atualizados.

9 - Clique em Step Into mais algumas vezes at a completa execuo do cdigo.

10 - Pare a execuo do programa.

Para remover um item da janela Watch, clique sobre o mesmo, exemplo, idade <
20 e pressione a tecla Delete no teclado.

Para ver o contedo das varveis e propriedades durante a execuo do programa


voc precisa usar a janela Watch, porque a janela Locals no mantem os valores
durante a execuo de todo o programa.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 162

Curso Programando com C# e o Visual Studio .NET 2005

Lio 26 Usando a janela Command

Para esse item suponho que voc tenha finalizado o anterior e o que o exemplo
esta com o BreakPoint marcado.

1 - Execute o programa.

2- Na primeira caixa de texto digite 25 e clique em Testar.

Ele deve parar na linha marcada:

3 - Na barra de ferramentas Debug clique em Step Into ou pressione F11.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 163

Curso Programando com C# e o Visual Studio .NET 2005

4 - No menu Debug, selecione Windows e clique em Immediate.

O cursor vai para a janela Command, no modo Immediate.

5 - Digite idade = 14 e pressione enter.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 164

Curso Programando com C# e o Visual Studio .NET 2005

Agora voc modificou o contedo da varivel idade com a janela Command, o


valor da vriavel idade exibido na janela Locals em vermelho, imediatamente
aps a modificao, mostrando que acabou de ser modificada.

6 - Clique duas vezes sobre o boto Step Into na barra de ferrametas Debug.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 165

Curso Programando com C# e o Visual Studio .NET 2005

7 - Digite o seguinte cdigo na janela Command e pressione Enter:

TextBox2.Text = Voc tem uma boa idade

A propriedade Text do objeto TextBox2 imediatamente modificado.

Verifique na janela Locals.

8 - Clique no boto Step Into da barra de ferramentas Debug mais duas vezes.

O nmero 25 permanece na TextBox1, isso porque mudamos apenas o valor da


varivel e no o valor do TextBox1, j a TextBox2 mostra a mensagem nova que
colocamos atravs da janela Command.

Em companhia com as janelas Locals e Watch a janela Command pode ser muito
til para encontrar e resolver dificeis erros de lgica em seus programas.

Lio 27 try..catch

At agora voc aprendeu como utilizar o Visual Studio .NET para resolver erros de
sintaxe e lgicos. partir deste item voc aprender a tratar erros de runtime
atravs do try...catch, que conhecido como uma estrutura de tratamento de erros
ou estrutura de tratamento de excees. Voc pode us-lo para reconhecer qual o
erro de runtime esta ocorrendo no seu programa e atravs disso emitir uma
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 166

Curso Programando com C# e o Visual Studio .NET 2005

mensagem de erro adequada e ajustar seu programa com as condies necessrias


para que ele continue executando.

Um exemplo bem comum, mas que permite que ilustremos bem como os erros de
runtime ocorrem e como trat-los o exemplo da leitura do drive de disquete.

Para esse exemplo ser necessrio um disquete com um arquivo nele. Vamos
colocar um arquivo de imagem, assim voc j aprende como abrir um arquivo de
imagem no seu programa.

1 - Pegue um disquete - o ideal que no tenha nenhum arquivo nele ou pelo


menos o espao necessrio para a imagem - coloque o no drive A.

2 - Copie para o disquete uma imagem, no nosso exerccio estou colocando a


imagem inverno.jpg, porque ela j vem com o windows XP e fica armazenada na
pasta amostra de imagens dentro de Meus Documentos > Minhas Imagens >
Amostra de imagens. Fique a vontade para colocar outra imagem.

3 - Agora no Visual Studio crie um novo programa chamado TryCatch do tipo


Windows Application.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 167

Curso Programando com C# e o Visual Studio .NET 2005

4 - Arraste para o Form1 os seguites controles:

1 Button

1 PictureBox

5 - Mude a propriedade Text do Button1 para Testar Drive.

6 - Organize os controles como a figura abaixo:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 168

Curso Programando com C# e o Visual Studio .NET 2005

Eu redimencionei tanto o tamanho do Form1 como o tamanho do PictureBox1,


voc pode fazer o mesmo utilizando as guias.

7 - De um clique duplo sobre o Button1 e digite o seguinte cdigo:

pictureBox1.Image = System.Drawing.Image.FromFile(@"a:\inverno.jpg");

Quando for passar um caminho como string utilize o @ antes como fizemos no
cdigo acima.

8 - Execute sua aplicao.

9 - Clique no boto Testar Drive, a imagem deve abrir no Form como a seguir:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 169

Curso Programando com C# e o Visual Studio .NET 2005

10 - Pare a execuo do programa.

11 - Tire o disquete do drive.

12 - Execute novamente o programa e clique no boto Testar Drive.

O programa no consegue encontrar o arquivo, acontece ento um erro de runtime,


que para bruscamente a execuo do programa.

A linha com o erro tambm fica amarela no painel de cdigo.

13 - Clique no boto Continue para fechar o programa ou pressione F5.

Vamos agora implementar o cdigo que faz o tratamento do erro.

14 - Modifique o cdigo do Evento do Button1 para o seguinte:

try
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 170

Curso Programando com C# e o Visual Studio .NET 2005

{
pictureBox1.Image = System.Drawing.Image.FromFile(@"a:\inverno.jpg");
}
catch
{
MessageBox.Show("Insira o disquete no drive A");
}

Voc no precisa digitar denovo a linha que executa a leitura da imagem do


disquete. Apenas acrescente o try..catch e o cdigo responsavel por emitir a
mensagem de erro.

15 - Execute a aplicao.

16 - Sem o disquete no drive clique no boto Testar Drive.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 171

Curso Programando com C# e o Visual Studio .NET 2005

Perceba que agora ele mostra a caixa de dialgo com a mensagem que
especificamos. Isso muito mais elegante do que o erro gerando anteriormente.

17 - Clique no boto OK.

18 - Insira o disquete com a imagem no drive e clique em OK.

19 - Feche a aplicao.

Vamos analizar agora o bloco de cdigo responsvel pelo tratamento do erro.

Primeiramente segue a sintaxe do try...catch:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 172

Curso Programando com C# e o Visual Studio .NET 2005

try
{
Cdigo executado se nenhum erro acontecer
}
catch
{
Cdigo executado se houver erro
}
Finally
{
Opcional, sempre executado
}

O cdigo fica sempre aps a palavra reservada try, se algum erro aconteer no
processamento deste cdigo o programa vai imediatamente para o bloco catch que
responsavel pelo tratamento do erro. O finally opcional, ele sempre
executado, com erro ou no. No nosso exemplo colocamos o cdigo que l a
imagem dentro do try, e no catch o cdigo que abre a caixa de dialgo pedindo
para inserir o disquete no drive A.

Se nenhum erro ocorrer executado apenas o cdigo dentro do try, seno ele vai
para o catch. Pedindo para inserir o disquete no drive A.
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 173

Curso Programando com C# e o Visual Studio .NET 2005

try
{
pictureBox1.Image = System.Drawing.Image.FromFile(@"a:\inverno.jpg");
}
catch
{
MessageBox.Show("Insira o disquete no drive A");
}

Vamos agora implementar o Finally no nosso cdigo.

20 - Altere o cdigo do evento do Button1 para o seguinte:

try
{
pictureBox1.Image = System.Drawing.Image.FromFile(@"a:\inverno.jpg");
}
catch
{
MessageBox.Show("Insira o disquete no drive A");
}
finally
{
MessageBox.Show("Cdigo executado no finally");
}

Voc no precisa mudar o cdigo anterior, apenas acrescentar o finally, como


exemplo de uso do finally apenas vamos exibir mais uma caixa de dilogo.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 174

Curso Programando com C# e o Visual Studio .NET 2005

21 - Execute a aplicao.

22 - Teste com e sem disque do drive. Vai ver que a mensagem do Finally aparee
nas duas alternativas, ou seja, com e sem erro.

A tabela a seguir mostra o que ocasiona a maior parte dos erros de runtime:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 175

Curso Programando com C# e o Visual Studio .NET 2005

Lio 28 Usando try...catch aninhados

Podemos aninhar - colocar blocos de try...catch um dentro de outro - para criar


estruturas de tratamento mais avanadas, como o exemplo:

try
{
pictureBox1.Image = System.Drawing.Image.FromFile(@"a:\inverno.jpg");
}
catch
{
MessageBox.Show("Insira o disquete no drive A");
try
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 176

Curso Programando com C# e o Visual Studio .NET 2005

{
pictureBox1.Image = pictureBox1.Image =
System.Drawing.Image.FromFile(@"a:\inverno.jpg");
}
catch
{
MessageBox.Show("Falha ao abrir o arquivo");
button1.Enabled = false;
}
}

A primeira mensagem de erro pede para o usuario inserir o disque e clicar em OK,
se ele o fizer o programa tenta ler o arquivo, se no for possivel emite a mensagem
de Falha e desabilita o Button1.

Vamos fazer esse exemplo para voc ver a diferena do que tinhamos feito at
aqui.

1 No programa que criamos na lio anterior, modifique o cdigo do evento do


Button1 para o seguinte.

try
{
pictureBox1.Image = System.Drawing.Image.FromFile(@"a:\inverno.jpg");
}
catch
{
MessageBox.Show("Insira o disquete no drive A");
try

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 177

Curso Programando com C# e o Visual Studio .NET 2005

{
pictureBox1.Image = pictureBox1.Image =
System.Drawing.Image.FromFile(@"a:\inverno.jpg");
}
catch
{
MessageBox.Show("Falha ao abrir o arquivo");
button1.Enabled = false;
}
}

Vai ficar assim:

2 - Execute aplicao e sem o disco no drive clique no boto Testar Drive.


Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 178

Curso Programando com C# e o Visual Studio .NET 2005

A seguinte mensagem aparece:

3 - Insira o disco no drive e clique em OK.

Ele carrega a imagem e a exibe.

4 - Agora tire novamente o disco do drive e clique no boto.

5 - Sem colocar o disco no drive clique em OK.

A seguinte mensagem aparece.

6 - Clique em OK.

Agora o Form1 mostrado com o Button1 desabilitado.

O cdigo responsvel por desabilitar o Button1 o seguinte:

button1.Enabled = false;
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 179

Curso Programando com C# e o Visual Studio .NET 2005

Lio 29 Programao defensiva

Conhecemos por programao defensiva a iniciativa do programador de escrever


seu cdigo protegendo-o de erros de runtime. Exemplo:

if (System.IO.File.Exists(@"a:\inverno.jpg"))
{
pictureBox1.Image = System.Drawing.Image.FromFile(@"a:\inverno.jpg");
}
else
{
MessageBox.Show("No possivel abrir o arquivo no drive A");
}

O cdigo acima usa a o mtodo File.Exists para verificar se o arquivo existe antes
de tentar abri-lo.

O IF no uma estrutura de tratamento de erros, porque no previne os erros de


runtime, no entanto ele permite tcnicas de validao.

A pergunta aqui a seguinte: Quando utilizo programao defensiva preciso usar


os blocos de tratamento de erros?

A resposta depende de com que freqncia voc acha que o problema vai ocorrer
no programa que voc esta criando. Se o erro de runtime for ocorrer menos de
25% das vezes que o cdigo for executado o tratamento de erros a forma mais
eficiente de tratar o erro. Os try...catch essencial se voc tem mais do que uma
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 180

Curso Programando com C# e o Visual Studio .NET 2005

condio para testar tambm, e se voc quer privar os usurios de vrias questes
a serem respondidas para prevenir os erros.

No entanto se a estimativa do erro ocorrer for mais de 25% da vezes, a


programao defensiva bem eficaz para diminuir a quantidade de excees.

Mas o ideal o uso das duas, tanto da programao defensiva como dos blocos
Try...Catch.

Lio 30 Exit try

Para finalizar suponha que o usurio esta sem o disco e tente abrir o arquivo, no
sendo possivem a exceo acontee e consequentemente o erro de runtime, um
bloco try...catch trata o erro, mas novamente o usuario clica no boto e o erro
acontee denovo, tratado, e assim sucessivamente.

Para evitar esse problema podemos criar uma variavel que armazena o numero de
vezes que o Catch foi executado, chegando a um nmero estipulado podemos por
exemplo desabilitar o boto, como no exemplo abaixo:

int retorno = 0;
try
{
pictureBox1.Image = System.Drawing.Image.FromFile(@"a:\inverno.jpg");
}
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 181

Curso Programando com C# e o Visual Studio .NET 2005

catch
{
retorno += 1;
if (retorno <= 2)
{
MessageBox.Show("Insira o disquete no drive A");
}
else
{
MessageBox.Show("Recurso no disponivel");
button1.Enabled = false;
}
}

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 182

Curso Programando com C# e o Visual Studio .NET 2005

Mdulo 7
Arrays e Colees

Lio 31 Usando Arrays

Imagine que voc tem que armazenar as faltas cometidas por cada jogador de um
time em uma partida de futebol. Voc precisaria armazenar o nome e o nmero de
faltas que cada jogador cometeu. Como faria para armazenar isso em variveis?
Provavelmente voc teria que declarar duas variveis para cada jogador, uma para
armazenar o nome e outra o nmero de faltas, chagando facilmente a 22 variveis,
isso, se no houver nenhuma substituio.

Arrays so usados para gerenciar grande quantidade de informao. Como


variveis, voc precisa declarar seus arrays antes de us-los. Os arrays tambm
respeitam as mesmas regras de escopo que as variveis, ou seja se declaradas
dentro de procedimentos, ficam disponiveis apenas para o procedimento em
questo.

Vamos fazer um exemplo, nele vamos criar o programa que armazenar os dados
nos nomes dos jogadores e as faltas cometidas por eles.

1 - Entre no Visual Studio e crie um novo projeto do tipo Windows Application


chamado Arrays.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 183

Curso Programando com C# e o Visual Studio .NET 2005

2 - Arraste para o Form1 os seguintes controles:

3 Button

1 ListBox

2 Labels

2 TextBoxes

3 - Altere a propriedade Text do Button1 para Inserir Jogador.

4 Altere a propriedade Text do Button2 para Inserir Falta

5 Altere a propriedade Text do Button3 para Visualizar Array

6 - Altere a propriedade Text do Form1 para Array.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 184

Curso Programando com C# e o Visual Studio .NET 2005

7 Altere a propriedade Text do Label1 para Jogador.

8 Altere a propriedade Text do Label2 para Num. Faltas

9 - Organize-os como a prxima figura:

10 - Na janela Solution Explorer clique no boto View Code para ir para o Painel
de cdigo.

11 - Digite dentro da classe do Form1 o seguinte cdigo:

string[] jogadores = new string[11];

Vai ficar assim:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 185

Curso Programando com C# e o Visual Studio .NET 2005

Nesta linha declaramos um Array de tamanho fixo. O array que criamos como
uma tabela com 11 linhas, o suficiente para armazenar o nome do time inteiro, 11
jogadores.

12 - Na janela Solution Explorer clique em View Designer para voltar para o


Form1 no modo Design, voc pode tambm clicar na aba Form1.vb[Design] ao
lado da aba Start Page, essa altura do curso voc ja deve estar familiarizado
com o Visual Studio.

13 - De um clique duplo sobre o Button1 e digite o seguinte cdigo:

jogadores[0] = textBox1.Text;

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 186

Curso Programando com C# e o Visual Studio .NET 2005

Isso insere Marcos na primeira linha do Array, se colocassemos 6 ao invs de 0,


por exemplo, seria na linha 7. O primeiro registro no array sempre o 0, isso
porque os ndices sempre comeam com 0.

14 - De um clique duplo sobre o Button3 (Visualizar Array) e digite o seguinte


cdigo:

listBox1.Items.Add(jogadores[0]);

Isso insere na ListBox1 o contedo da primeira linha do array Jogadores, se


colocassemos 6, exibiria o contedo da linha 7, lembre-se que de o primeiro
registro do array tem sempre o ndice 0 e assim sucessivamente.

No se assuste com o cdigo para inserir no ListBox1, se fosse em uma TextBox


ou Label voc poderia usar a seguinte linha de cdigo:

textBox1.Text = jogadores[0];

S que para inserir um item no ListBox precisamos usar seu mtodo Add.

15 Execute a aplicao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 187

Curso Programando com C# e o Visual Studio .NET 2005

16 Digite Marcos no textBox1 e clique em inserir Jogador.

17 Clique em Visualizar Array.

Agora que voc j compreende como inserir e ler dados do array vamos avanar
no exemplo.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 188

Curso Programando com C# e o Visual Studio .NET 2005

18 Pare a execuo.

19 - Digite dentro da classe do Form1 o seguinte cdigo:

int contador = 0;

Isto cria uma varivel que estar disponvel para todos os procedimentos dentro da
classe, ou seja, seu escopo a classe. Tambm j atribumos o valor 0 nela. Essa
varivel ser usada para controlar o ndice ou local do array onde vamos inserir
cada jogador.

20 - Volte para o cdigo do procedimento do Button1.

21 - Substitua o cdigo pelo seguinte:

if (contador <= 10 && textBox1.Text != "")


{
jogadores[contador] = textBox1.Text;
contador += 1;
textBox1.Text = null;
}
else
{
button1.Enabled = false;
}

Vai ficar assim:


Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 189

Curso Programando com C# e o Visual Studio .NET 2005

No podemos adicionar jogadores no array se ele estiver cheio e se o contedo do


textBox no tiver nada. Para isso usamos o if.

Depois adicionamos o contedo do textBox1 no array. A posio informada pela


varivel contador.

Adicionamos 1 a varivel contador, seno o array nunca vai para a prxima


posio.

Para finalizar limpamos o textBox1.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 190

Curso Programando com C# e o Visual Studio .NET 2005

No else apenas desabilitamos o Button1 caso o array esteja vazio ou no tenha


nada nele digitado, ou seja, caso a expresso lgica do if retorne false.

22 - Mude o cdigo do Button3 pelo seguinte:

for (int i = 0; i <= jogadores.Length - 1; i++)


{
listBox1.Items.Add(jogadores[i]);
}

Vai ficar assim:

Aqui usamos o loop tor para passar por cada item do Array e adiciona-lo no
ListBox1.
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 191

Curso Programando com C# e o Visual Studio .NET 2005

A propriedade Length retorna o numero de registros do array, que 11,


poderamos simplesmente ter feito assim:

for (int i = 0; i <= 10; i++)

Colocamos o -1 depois do Length porque o Lenght retorna 11, lembre-se que o


ndice do primeiro elemento do array 0, ento o ultimo 10.

A cada passada pelo For o i assume o valor de uma linha do array at chegar ao
final.

23 - Execute a aplicao.

24 Digite o nome de um Jogador e clique no boto Inserir Jogador.

Faa isso sucessivamente at que o boto seja desabilitado, ou seja, que o array
seja totalmente preenchido.

25 - Clique no boto Visualizar Array.

O nome dos 11 jogadores listado.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 192

Curso Programando com C# e o Visual Studio .NET 2005

Como voc pode ver, trabalhamos facilmente com os nomes dos 11 jogadores em
nosso array, podemos modificar os dados do nosso array facilmente, bastando para
isso indicar qual linha deve ser alterada e o novo dado, como no exemplo:

jogadores[10] = Robinho;

Um array pode conter mais de um coluna. Vamos entender como isso funciona
implementando o cdigo que vai armazenar o nmero de faltas de cada jogador.

Como um Array s pode conter um tipo de dado e nosso Array j do tipo String,
no nosso exemplo vamos adicionar o nmero de faltas como string mesmo, mas, a
maneira correta seria criar um outro Array do tipo integer para armazenar as faltas.
Vamos optar pela primeira opo para voc aprender a trabalhar com duas colunas.

26 - Altere o cdigo que declara o Array para o seguinte:

string[,] jogadores = new string[11,2];

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 193

Curso Programando com C# e o Visual Studio .NET 2005

Isso cria um Array com 11 linhas e 2 colunas.

27 - Localize no procedimento do evento do Button1, as seguintes cdigo:

jogadores[contador] = textBox1.Text;

28 - Mude-o para o seguinte:

jogadores[contador,0] = textBox1.Text;

Isso apenas indica que vamos adicionar o nome na linha que o loop indicar, na
coluna 1, de ndice 0.

29 - Digite dentro da classe do Form1 o seguinte cdigo:

int contadorFaltas = 0;

Esta varivel far o mesmo que a contador, s que para as faltas.

30 - D um clique duplo sobre o Button2 e digite o seguinte cdigo:

if (contadorFaltas <= 10 && textBox2.Text != "")


{
jogadores[contadorFaltas, 1] = textBox2.Text;
contadorFaltas += 1;
textBox2.Text = null;
}
else
{
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 194

Curso Programando com C# e o Visual Studio .NET 2005

button2.Enabled = false;
}

Vai ficar assim:

Isso semelhante ao cdigo do Button1. S que usamos a varivel contadorFaltas,


o textBox2 e o button2.

Note tambm que agora atribuimos os valores segunda coluna, como mostra o
cdigo:

jogadores[contadorFaltas, 1] = textBox2.Text;

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 195

Curso Programando com C# e o Visual Studio .NET 2005

O ndice 1 se refere a segunda coluna.

Agora precisamos mudar o cdigo do button3, que exibe os dados, para listar as
faltas tambm.

31 - Mude o cdigo do Button3 para o seguinte:

for (int i = 0; i <= 10; i++)


{
listBox1.Items.Add(jogadores[i,0] + " - Total de faltas: " +
jogadores[i,1]);
}
O que fizemos foi concatenar os dados da coluna 1 com os da 2, e fazer um loop
por cada linha do array de 0 a 10 ou seja pelas 11 linhas.

32 - Execute sua aplicao:

33 Digite o nome de um Jogador e clique no boto Inserir Jogador.

Faa isso sucessivamente at que o boto seja desabilitado, ou seja, que o array
seja totalmente preenchido.

34 Digite uma quantidade de faltas para cada jogador como fez com o nome dos
jogadores at o boto ser desabilitado.

35 Clique no boto Visualizar array

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 196

Curso Programando com C# e o Visual Studio .NET 2005

Lio 32 Colees

Uma coleo um grupo de objetos relacionados. Todo controle que voc arrasta
para o Form um objeto. E cada objeto adicionado ao Form adicionado a uma
coleo. Essa coleo conhecida como coleo de controles ou Control
Collection.

1 - Entre no Visual Studio e crie um novo projeto do tipo Windows Application


chamado Colees.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 197

Curso Programando com C# e o Visual Studio .NET 2005

2 - Arraste 3 Buttons para o Form1.

Sempre que adicionamos controles como o Button por exemplo ao nosso Form,
automaticamente os controles so adicionados a coleo de controle do Form,
vamos chamar essa coleo de Control Collection daqui pra frente.
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 198

Curso Programando com C# e o Visual Studio .NET 2005

3 - De um clique duplo sobro o button1 e digite o seguinte cdigo:

foreach (Control controles in Controls)


{
controles.Text = "OK";
}

Vai ficar assim:

4 - Execute sua aplicao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 199

Curso Programando com C# e o Visual Studio .NET 2005

5 - Clique no Button1.

Nosso loop modificou a propriedade Text de todos os botes para OK.

Criamos um loop que passou por cada controle modificando sua propriedade Text.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 200

Curso Programando com C# e o Visual Studio .NET 2005

6 - Voc pode filtrar os controles que quer modificar tambm, vamos fazer isso
modificando o Loop do Button1 para o seguinte:

foreach (Control controles in Controls)


{
if (controles.Name != "button1")
controles.Left = controles.Left + 20;
}

Vai ficar assim no painel de cdigo:

7 - Execute a aplicao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 201

Curso Programando com C# e o Visual Studio .NET 2005

8 - Clique no Button1.

Agora apenas o Button2 e Button3 foram alterados pelo Loop. J que


adicionamos o If para testar se o controle no era o Button1. Mudamos uma
propriedade diferente desta vez, movimentando assim os Buttons para a direita.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 202

Curso Programando com C# e o Visual Studio .NET 2005

Voc pode referenciar um controle na coleo individualmente, para isso voc


utiliza o indice para localizar um objeto da coleo. Como nos arrays o indice
comea sempre em 0. Outro ponto importante que o primeiro controle do indice,
ou seja, o indice 0 o ltimo controle adicionado no Form1, o penultimo tem
indice 1 e assim sucessivamente. Se voc adicionar um controle novo , ele fica com
indice 0 e os outros pulam um pra frente sucessivamente.

Assim para alterar o Button3 poderiamos usar a seguinte linha de cdigo:

Controls[0].Left += 35;

Lembrando que Controls representa todos os controles do Form1, ou seja, a


Control Collection.

9 - No Form1 de um clique duplo sobre o Button2 e digite o seguinte cdigo:

Controls[0].Left += 35;

10 - Execute a aplicao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 203

Curso Programando com C# e o Visual Studio .NET 2005

11 - Clique no Button2.

Conforme citado o indice 0 representa o ltimo controle adicionado no Form1,


ento nosso cdigo moveu apenas o Button3 - que foi o ltimo controle adicionado
- para a esquerda.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 204

Curso Programando com C# e o Visual Studio .NET 2005

Mdulo 8
Aprofundando em Windows Forms

A partir deste capitulo vamos nos aprofundar mais no desenvolvimento de


aplicaes para Windows. Um programa realmente no desenvolvido com apenas
um formulrio (Form). Sempre temos vrios deles nos nossos programas, vamos
estudar neste capitulo como trabalhar com varios formulrios. Alem disso, vamos
estudar as propriedades mais importantes dos formulrios.

Lio 33 Trabalhando com mltiplos formulrios

Sempre que voc cria uma Windows Application um formulrio j criado por
padro, ele conhecido como formulrio Base.

Para adicionar um novo formulrio no seu programa voc:

1 Na janela Solution Explorer, clique com o boto direito no nome do


projeto, selecione Add e clique em Windows Form. Como a imagem
seguinte.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 205

Curso Programando com C# e o Visual Studio .NET 2005

2 Digite um nome para o novo formulrio e clique em Add.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 206

Curso Programando com C# e o Visual Studio .NET 2005

Vamos fazer um exemplo que ilustra como podemos trabalhar com mltiplos
formulrio.

1 Crie uma Windows Application chamada Formularios.

2 Arraste 2 buttons para o Form1.

3 Mude as propriedades Text dos Buttons 1 e 2 para Vermelho e Verde


respectivamente.

4 Adicione mais dois formulrios no projeto.

5 Mude o nome do Form2 para frmVermelho e do Form3 para frmVerde. Para


isso clique sobre o nome do Form no Solution Explorer e clique em Rename
como a imagem seguinte:
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 207

Curso Programando com C# e o Visual Studio .NET 2005

Se a seguinte mensagem aparecer clique em Sim. Isso vai atualizar todas as


referencias ao form do projeto para o novo nome.

Vai ficar assim:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 208

Curso Programando com C# e o Visual Studio .NET 2005

6 Mude a propriedade BackColor do frmVermelho para a cor Vermelha.

7 Mude a propriedade BackColor do frmVerde para Verde.

8 No Form1 de um clique duplo sobre o boto Vermelho e digite o seguinte


cdigo dentro do procedimento do evento click:

frmVermelho Vermelho = new frmVermelho();


Vermelho.Show();

Vai ficar assim:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 209

Curso Programando com C# e o Visual Studio .NET 2005

9 Faa o mesmo para o boto Verde mas digite o seguinte cdigo:

frmVerde Verde = new frmVerde();


Verde.ShowDialog();

10 Execute a aplicao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 210

Curso Programando com C# e o Visual Studio .NET 2005

11 Clique sobre o boto Vermelho.

O formulrio Vermelho aberto, perceba que voc pode clicar novamente no Form1
e depois voltar para o Vermelho e assim por diante.

12 Feche a janela Vermelha e clique agora no boto Verde.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 211

Curso Programando com C# e o Visual Studio .NET 2005

Perceba agora que voc no consegue voltar para o Form1 sem antes fechar o
formulrio Verde, isso porque usamos o mtodo ShowDialog ao invs do mtodo
Show, geralmente eu procuro usar sempre o mtodo ShowDialog em minhas
aplicaes.

Para a prxima lio continuaremos usando este exemplo.

Lio 34 Passando valores entre Forms

Para esta lio continuaremos usando o exemplo que criamos na lio anterior.

1 Adicione 1 button e 1 label no formulrio frmVermelho conforme a imagem:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 212

Curso Programando com C# e o Visual Studio .NET 2005

2 V para o painel de cdigo do frmVermelho e dentro da classe frmVermelho


digite o seguinte cdigo:

public string mensagem;

Isso cria uma varivel publica do tipo string chamada Mensagem.

Usamos a palavra public antes do tipo do dado na declarao de variveis sempre


que queremos faz-la publica.

Uma varivel publica pode ser acessada por outro formulrio.

Vai ficar assim no painel de cdigo:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 213

Curso Programando com C# e o Visual Studio .NET 2005

3 V para o Form1 e de um clique duplo sobre o boto Vermelho.

4 Adicione o seguinte cdigo:

Vermelho.mensagem = "Formulario Form1";

Vai ficar assim:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 214

Curso Programando com C# e o Visual Studio .NET 2005

5 Volte para o frmVermelho, de um clique duplo sobre o button1 e digite o


seguinte cdigo no procedimento:

label1.Text = mensagem;

Isso adiciona o contedo da varivel mensagem no Label1.

6 - Execute a aplicao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 215

Curso Programando com C# e o Visual Studio .NET 2005

7 Clique sobre o boto Vermelho.

8 No frmVermelho, clique no button1.

O contedo da varivel foi exibida no label1. O mais importante desta lio que
voc agora capaz de passar valores entre formulrios.
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 216

Curso Programando com C# e o Visual Studio .NET 2005

Lio 35 Posicionando os formulrios na tela

Crie

uma

nova

aplicao

do

tipo

Windows

Application

chamada

Posicionando.

2 - Modifique a propriedade StartPosition do Form1 para CenterScreen.

3 - Execute a aplicao.

Essa propriedade faz com que o formulrio em questo seja exibido no centro da
tela.

4 - Pare a execuo da aplicao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 217

Curso Programando com C# e o Visual Studio .NET 2005

5 - Modifique agora a propriedade StartPosition do Form1 para Manual.

Agora voc deve especificar manualmente como os valores que sero usados para
posicionar o formulrio na tela.

6 - Modifique a propriedade Location para 100;50.

7 - Execute a aplicao.

O formulrio exibido agora a 100 pixels da lateral esquerda e 50 pixels do topo da


tela.

Lio 36 Controlando os eventos dos formulrios

1 - Crie um novo projeto no Visual Studio chamado Eventos do tipo Windows


Application.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 218

Curso Programando com C# e o Visual Studio .NET 2005

O clique do boto um exemplo de evento que pode ocorrer nos seus programas.
Existem dezenas de eventos que podem ocorrer em seus programas, e sempre que
um evento ocorre um bloco de cdigo pode ser processado, esse bloco de cdigo
conhecido como Manipulador de Evento. O evento que voc mais usou at aqui
foi o do clique do boto, tambm usou o Load do formulrio.

O .NET Framework usa uma nomeao padro para os Manipuladores de


Eventos. Essa nomeao combina o nome do objeto com o evento correspondente
ligando-os por um underline, exemplo: button1_Click; form1_Load.

Nosso exemplo vai nos mostrar como adicionar manipuladores de eventos em


nossos programas usando o painel de cdigo ou Code Pane.

2 Selecione o Form1 e na janela Properties clique sobre o boto Events.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 219

Curso Programando com C# e o Visual Studio .NET 2005

exibida uma lista de todos os eventos disponveis para o Formulrio.

Cada objeto possui uma lista de eventos.

3 - Arraste para o Form1 os seguintes controles:

1 Label

1 TextBox

1 Button

4 Clique sobre cada um dos controles acima e visualize sua lista de eventos.

Para criar o procedimento do evento desejado de um clique duplo sobre o nome do


mesmo na janela Properties.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 220

Curso Programando com C# e o Visual Studio .NET 2005

Mdulo 9
Usando controles do Windows Forms

Lio 37 Usando o controle dateTimePicket

Esse controle permite que o usurio escolha a data ou hora atravs de um


calendrio. Muito util para evitar erros de digitao de data ou hora incorretos.

1 - Crie um nova aplicao chamada DateTimePicket do tipo Windows Forms.

2 - Localize o controle DateTimePicket na ToolBox e adicione-o ao Form1.


Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 221

Curso Programando com C# e o Visual Studio .NET 2005

O objeto DateTimePicket por padro exibe a data atual, mas voc pode ajustar
esse valor na propriedade Value.

3 - Execute sua aplicao.

4 - No controle DataTimePicket, clique na seta para baixo.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 222

Curso Programando com C# e o Visual Studio .NET 2005

Voc pode escolher a data no calendrio. Isso muito prtico e evita erros.

5 Pare a execuo da aplicao.

6 - Arraste um Button para o formulrio.

7 - Altere a propriedade Text do Button1 para Aniversrio, como a imagem:

8 De um clique duplo sobre o boto e no seu procedimento de evento clique


digite o seguinte cdigo:

MessageBox.Show("Sua data de aniversrio " + dateTimePicker1.Text);

MessageBox.Show("O dia " +


dateTimePicker1.Value.DayOfYear.ToString());
MessageBox.Show("Hoje " + DateTime.Now.ToString());

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 223

Curso Programando com C# e o Visual Studio .NET 2005

A primeira linha usa a propriedade Text para exibir a data que esta selecionada no
controle.

A segunda usa o mtodo DayOfYear para recuperar apenas o dia do ano da data
que esta selecionada no controle.

A terceira linha exibe a data e hora atual usando o mtodo Now da estrutura
DateTime.

9 - Execute a aplicao.

10 - Selecione a data do seu aniverrio no controle.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 224

Curso Programando com C# e o Visual Studio .NET 2005

Para encontrar mais facil a data voc pode digitar o ano no controle antes de abrir
o calendrio para que ele j localize o ano.

11 - Clique no boto aniversrio.

A primeira mensagem exibe a data do seu aniversrio ou nascimento se voc


selecionou o ano em que nasceu.

12 - Clique em OK.

A segunda mensagem exibe o nmero do dia do seu aniversrio ou nascimento em


relao ao ano selecionado.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 225

Curso Programando com C# e o Visual Studio .NET 2005

13 - Clique novamente em OK para exibir a data atual.

14 - Clique em Ok e feche sua aplicao.

Lio 38 Usando os controles radioButton,


checkBox, listBox e comboBox

Vamos compreender agora como utilizar os controles RadioButton, CheckBox,


ListBox e ComboBox para receber informaes dos usurios. Para isso vamos
criar uma simples aplicao que usa os quatro tipos de controles para voc
compreender quais as diferenas entre eles, quando e como aplic-los.

1 - Crie um novo projeto chamado Controles do tipo Windows Application.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 226

Curso Programando com C# e o Visual Studio .NET 2005

2 - Arraste para o Form1 os seguintes controles:

2 GroupBox

3 RadioButton

3 CheckBox

1 ListBox

1 ComboBox

8 Label

3 - Organize-os como a figura:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 227

Curso Programando com C# e o Visual Studio .NET 2005

4 - Mude a propriedade Text do GroupBox1 para Computadores (apenas um).

5 - Mude a propriedade Text do GroupBox2 para Escritrio (0-3).

6 - Mude a propriedade Text do RadioButton1 para PC.

7 - Mude a propriedade Text do RadioButton2 para MAC.

8 - Mude a propriedade Text do RadioButton3 para Notebook.

9 - Mude a propriedade Text do CheckBox1 para FAX.

10 - Mude a propriedade Text do CheckBox2 para Calculadora.

11 - Mude a propriedade Text do CheckBox3 para Copiadora.

12 - Mude a propriedade Text do Label1 para Perifricos (apenas um).

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 228

Curso Programando com C# e o Visual Studio .NET 2005

13 - Mude a propriedade Text do Label2 para Produtos escolhidos.

14 - Mude a propriedade Text dos Labels 3 a 8 para vazio.


Deve ficar como a seguinte imagem:

Os 3 RadioButton devem ficar dentro do GroupBox1, assim como os 3


CheckBox devem ficar dentro do GroupBox2, o GroupBox agrupa os controles.

Vamos agora inserir valores na ListBox1.

15 - Clique na ListBox1 e na janela Properties, localize a propriedade Items.


Clique no boto com as reticncias nesta propriedade, deve abrir a seguite caixa:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 229

Curso Programando com C# e o Visual Studio .NET 2005

16 - Na janela String Collection Editor digite os items conforme a figura abaixo:

17 - Clique em OK.

Isso deve adicionar os items que digitamos na ListBox1.

18 - Faa o mesmo para o ComboBox1, adicione os seguintes items:


Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 230

Curso Programando com C# e o Visual Studio .NET 2005

19 - Mude a propriedade Text do ComboBox1 para Forma de Pagamento.

Seu Form1 deve estar semelhante a seguinte imagem:

20 - Execute a aplicao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 231

Curso Programando com C# e o Visual Studio .NET 2005

A primeira funcionade que iremos implementar agora a dos RadioButton. Eles


so usados sempre que o usurio precisa fazer uma escolha nica, j que no
permite que mais de um item seja marcado. Podemos tambm colocar uma escolha
que j aparece marcada como padro, para isso voc deve mudar a propriedade
Checked do RadioButton em questo para True.

21 - Pare a execuo do programa.

22 - Mude a propriedade Checked do RadioButton1 para True.

23 - Execute novamente a aplicao. Agora o item PC j aparee marcado.

24 - Pare novamente a execuo do programa. Vamos agora programar o cdigo


para os RadioButtons.

25 - No modo Design, de um clique duplo sobre o RadioButton1 e digite o


seguinte cdigo no procedimento de evento criado:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 232

Curso Programando com C# e o Visual Studio .NET 2005

label3.Text = "PC";

26 - Faa o mesmo para o RadioButton2 e RadioButton3, digitando as seguintes


linhas de cdigo respectivamente:

label3.Text = "MAC";

label3.Text = "Notebook";

Deve ficar assim:

O evento padro para o RadioButton o CheckedChanged, que ocorre sempre


que h uma mudana na propriedade Checked. Quando voc clica nele o Checked
fica como True, ento o evento disparado e muda a propriedade Text do Label3.
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 233

Curso Programando com C# e o Visual Studio .NET 2005

27 - Execute a aplicao e clique sobre as escolhas do RadioButtons para verificar


a funcionalidade que acabamos de colocar.

28 - Pare a execuo do programa.

Vamos agora programar o cdigo para os CheckBoxes. Eles so semelhantes ao


RadioButton, no entando permitem mais de uma escolha. Novamente voc pode
mudar a propriedade Checked de alguns deles para j iniciarem marcados. So
usados sempre para perguntas que requerem nenhum ou vrias respostas como no
nosso exemplo. O usurio pode no querer nenhum item para o escritrio, pode
querer um, dois ou todos os items.

29 - De um clique duplo sobre o CheckBox1 e digite o seguinte cdigo:

if (checkBox1.Checked == true)
label6.Text = "Fax";
else
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 234

Curso Programando com C# e o Visual Studio .NET 2005

label6.Text = "";

30 - Faa o mesmo para o CheckBox2 e digite o seguinte cdigo:

if (checkBox2.Checked == true)
label7.Text = "Calculadora";
else
label7.Text = "";

31 - Faa o mesmo para o CheckBox3 e digite o seguinte cdigo:

if (checkBox3.Checked == true)
label8.Text = "Copiadora";
else
label8.Text = "";

32 - Execute sua aplicao. Marque as opes FAX e Copiadora, por exemplo, como
disse podemos marcar mais de um item.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 235

Curso Programando com C# e o Visual Studio .NET 2005

33 - Pare a execuo do programa.

34 - De um clique duplo sobre o ListBox1 e digite o seguinte cdigo:

label4.Text = listBox1.SelectedItem.ToString();

Isso escreve o contedo do item seleciona na Label4.

35 - Vamos j programar o cdigo para a ComboBox tambm, de um clique duplo


sobre a mesma no modo Design para abrir o procedimento de evento padro e
digite o seguinte cdigo:

label5.Text = comboBox1.SelectedItem.ToString();

36 - Execute sua aplicao.

37 - Teste todas as escolhas.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 236

Curso Programando com C# e o Visual Studio .NET 2005

Agora voc j capaz de pegar informaes dos usurios de vrias maneiras.


Procure utilizar sempre os controles aprendidos neste capitulo, eles impedem
muitos erros nos programas por impedirem entradas de dados invlidas.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 237

Curso Programando com C# e o Visual Studio .NET 2005

Mdulo 10
Bancos de dados com ADO.NET

Lio 39 Conceitos bsicos de banco de dados

Tudo o que aprendemos at aqui relacionado interface com o usurio ou Front


End, esse acessa os dados nos bancos de dados. Um banco de dados uma
coleo organizada de informaes armazenadas. Voc pode criar poderosos banco
de dados usando ferramentas da prpria Microsoft como SQL Server e Access e
outros de terceiros como Paradox, Oracle, etc, ou seja, voc no usa o Visual
Basic.NET para criar bancos de dados, mas para exibir, analisar, e manipular as
suas informaes.

Para manipular os dados voc precisa entender os conceitos bsicos.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 238

Curso Programando com C# e o Visual Studio .NET 2005

A imagem acima representa uma tabela em um banco de dados. Esta tabela


armazena as informaes dos clientes. Cada linha representa um registro. Cada
registro na nossa tabela clientes representa um cliente especifico. Cada coluna
representa um campo, sendo cada campo uma informao do cliente, como nome
e telefone. Podemos ter mais informaes como endereo, cep, etc. Um banco de
dados pode e geralmente contem varias tabelas. Outras tabelas no nosso banco de
dados de clientes poderiam ser produtos, vendedores, etc.

Para criar o banco de dados que vamos utilizar nos exemplos deste capitulo vamos
usar o Access. O Access instalado junto com o Microsoft Office, se sua verso for
a 2003, ele deve estar em Iniciar > Programas > Microsoft Office > Microsoft
Office Access 2003. Voc pode usar qualquer verso do Access para os exemplos
deste captulo.

1 - Entre no Access.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 239

Curso Programando com C# e o Visual Studio .NET 2005

2 - No menu Arquivo clique em Novo.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 240

Curso Programando com C# e o Visual Studio .NET 2005

3 - Crie uma pasta chamada ADONET no local que voc esta criando seus
exemplos, navegue at essa pasta e crie o banco com o nome dados.mdb.

4 - Na janela dados:Banco de dados, de um clique duplo em Criar tabela no


modo Design.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 241

Curso Programando com C# e o Visual Studio .NET 2005

5 - Digite em Nome do campo e Tipo de dados os itens como na figura abaixo.


Note que o campo id contm uma chave, para adiciona-l com o campo id
selecionado clique em Chave Primaria na barra de ferramentas.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 242

Curso Programando com C# e o Visual Studio .NET 2005

6 - Na janela Tabela1:Tabela clique em fechar, voc vai receber a seguinte


mensagem:

7 - Clique em Sim.

8 - Em Nome da tabela digite Clientes e clique em OK.


Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 243

Curso Programando com C# e o Visual Studio .NET 2005

A tabela clientes criada.

9 - De um clique duplo sobre ela e digite o nome e telefone de 10 pessoas, como a


figura:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 244

Curso Programando com C# e o Visual Studio .NET 2005

Note que no necessrio digitar o Id porque ele adicionado automaticamente,


isso porque selecionamos numerao automatica quando criamos o campo. O id o
campo que identifica individualmente cada registro no banco de dados. Por isso
marcamos ele com a chave primaria, podem ter dois clientes com o mesmo nome,
mas no com o mesmo id em nossa tabela.

10 - Feche o Access.

Lio 40 Usando o Visual Studio 2005 para


manipular dados de um banco de dados.

1 - Crie uma nova aplicao chamado ADONET do tipo Windows Application.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 245

Curso Programando com C# e o Visual Studio .NET 2005

2 No menu Data, clique em Add New Data Source.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 246

Curso Programando com C# e o Visual Studio .NET 2005

Nesta janela podemos escolher qual a origem dos dados.

3 Selecione Database na janela Data Source Configuration Wizard e clique em


Next.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 247

Curso Programando com C# e o Visual Studio .NET 2005

Escolhemos que nossa origem de dados ser um banco de dados, agora criaremos
uma nova conexo com o banco de dados.

4 Clique no boto New Connection.

5 Na janela Choose Data Source, selecione Microsoft Access Database File, j que
criamos nosso banco de dados no Access.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 248

Curso Programando com C# e o Visual Studio .NET 2005

6 Ainda na janela Choose Data Source, clique em Continue.

7 Aparece a janela Add Connection. Nela selecionaremos o nosso banco de dados


clicando em Browse. Se configuramos uma senha no nosso banco de dados
especificamos as mesmas nesta janela tambm.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 249

Curso Programando com C# e o Visual Studio .NET 2005

8 Clique em Browse e selecione o arquivo de banco de dados dados.mdb que


criamos, conforme a imagem seguinte.

9 Clique em Test connection para testar a conexo, aps clique em OK.

Voltando a janela Data Source Configuration Wizard podemos ver a string de


conexo criada, basta clicar em + Connection string.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 250

Curso Programando com C# e o Visual Studio .NET 2005

10 Clique em Next. A seguinte mensagem exibida:

Se voc clicar em sim o Visual Studio criar automaticamente uma copia do banco
de dados para dentro do projeto e corrigira a string de conexo para o uso do
mesmo.

11 Clique em Sim.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 251

Curso Programando com C# e o Visual Studio .NET 2005

12 - A tela acima permite que salvemos a string de conexo em um arquivo de


configurao XML, certifique-se que Yes, save the connection as estaja marcado e
clique em Next.

13 - A tela seguinte permite que escolhamos as tabelas e consultas que desejamos


usar em nosso programa, marque todas as opes em clique em Finish.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 252

Curso Programando com C# e o Visual Studio .NET 2005

14 No menu Data, clique em Show Data Sources, a seguinte janela aberta:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 253

Curso Programando com C# e o Visual Studio .NET 2005

Nesta janela configuramos como os controles de tela devem ser criados baseados
nos campos das tabelas do banco de dados.

15 Clique em + Clientes para espandir os campos.

16 Arraste Clientes para o formulrio, ele deve ficar como a seguinte figura:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 254

Curso Programando com C# e o Visual Studio .NET 2005

Perceba que ele j cria automaticamente os controles necessrios para o acesso e


atualizao dos dados, assim como um controle DataGridView para manipular os
mesmos.

17 Execute a aplicao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 255

Curso Programando com C# e o Visual Studio .NET 2005

Voc j pode navegar, incluir, excluir e alterar os registro da tabela.

18 Pare a execuo do programa.

19 Apague todos os controles do Form1.

20 Na janela Data Sources, clique na seta para baixo de Clientes e selecione


Detais.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 256

Curso Programando com C# e o Visual Studio .NET 2005

21 Arraste novamente Clientes para o formulrio.

Novamente so criados todos os controles necessrios para a manipulao dos


dados, s que desta vez no usado o DataGridView.

22 Execute a aplicao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 257

Curso Programando com C# e o Visual Studio .NET 2005

Novamente voc pode navegar, incluir, excluir e alterar os registro da tabela.


23 Pare a execuo do programa.

Voc tambm pode configurar individualmente como ser exibido cada campo da
tabela atravs da janela Data Sources. Basta clicar na seta para baixo do campo
conforme a prxima imagem:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 258

Curso Programando com C# e o Visual Studio .NET 2005

Agora voc j capaz de manipular dados em seus programas.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 259

Curso Programando com C# e o Visual Studio .NET 2005

Mdulo 11
Imprimindo

Lio 41 Imprimindo a partir de uma textBox

1 - Crie um nova aplicao chamada Impresso, do tipo Windows Application.

2 - Adicione os seguintes controles no Form1:

3 Button

1 TextBox

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 260

Curso Programando com C# e o Visual Studio .NET 2005

1 PrintDocument

1 PrintDialog

1 PageSetupDialog

1 PrintPreviewDialog

3 - Mude as seguintes propriedades do TextBox1:

Multiline = True
ScrollBars = Vertical

4 - Mude a propriedade Text do Button1 para Imprimir.

5 - Mude a propriedade Text do Button2 para Configurar Impresso.

6 - Mude a propriedade Text do Button3 para Visualizar Impresso.

7 - Organize os 3 botes e o TextBox como a figura:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 261

Curso Programando com C# e o Visual Studio .NET 2005

8 - Na janela Solution Explorer clique no boto View Code.

9 - No topo do cdigo do formulrio digite o seguinte cdigo:

using System.Drawing.Printing;

Isso permite que usemos a classe PrintDocument, ela fica localizada dentro do
namespace System.Drawing.Printing. A linha acima permite que usemos o
namespace em questo dentro cdigo do Form1.

Namespaces organizam as classes com o objetivo de facilitar sua implementao.

10 - Dentro da classe digite:

PageSettings configuracaoDepagina = new PageSettings();


string stringParaImprimir;
Font fontParaImprimir = new Font("Arial", 10);

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 262

Curso Programando com C# e o Visual Studio .NET 2005

Como pode perceber no cdigo acima criamos 3 variveis que vo armazenar


informaes importantes que ficaro disponiveis para todos os procedimentos da
classe Form1.

O cdigo digitado at aqui deve estar assim no painel de cdigo:

11 - De um clique duplo sobre o Button1 (Imprimir) no modo design e digite o


seguinte cdigo no procedimento do boto:

stringParaImprimir = textBox1.Text;
printDialog1.Document = printDocument1;
printDocument1.Print();

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 263

Curso Programando com C# e o Visual Studio .NET 2005

12 - V para o modo design novamente e de um clique duplo sobre o controle


PrintDocument1.

O Visual Studio cria para o PrintDocument1 um procedimento de evento que ser


executado sempre que for solicitada a impresso de uma pgina.

13 - Digite o seguinte cdigo para o procedimento printDocument1_PrintPage:

int numeroLinhas;
int numeroCaracteres = 0;
string stringParaPagina;
StringFormat formataString = new StringFormat();

RectangleF areaPagina = new


RectangleF(e.MarginBounds.Left, e.MarginBounds.Top,
e.MarginBounds.Width, e.MarginBounds.Height);

SizeF areaLinha = new SizeF(e.MarginBounds.Width,


e.MarginBounds.Height - fontParaImprimir.GetHeight(e.Graphics));
formataString.Trimming = StringTrimming.Word;

e.Graphics.MeasureString(stringParaImprimir,
fontParaImprimir, areaLinha, formataString, out numeroCaracteres, out
numeroLinhas);

stringParaPagina = stringParaImprimir.Substring(0,
numeroCaracteres);

e.Graphics.DrawString(stringParaPagina, fontParaImprimir,
Brushes.Black, areaPagina, formataString);
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 264

Curso Programando com C# e o Visual Studio .NET 2005

if (numeroCaracteres < stringParaImprimir.Length)


{
stringParaImprimir =
stringParaImprimir.Substring(numeroCaracteres);
e.HasMorePages = true;
}
else
{
e.HasMorePages = false;
stringParaImprimir = textBox1.Text;
}

Esse procedimento de eventos define a rea da pgina que vai ser impressa, se for
preciso dividir o texto em linhas e pginas esse procedimento tambm se
responsabilizar por isso.

A rea de impresso definida usando a varivel areaPagina, que baseada na


classe RectangleF.

RectangleF areaPagina = new RectangleF(e.MarginBounds.Left,


e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height);

A varivel formataString usa o mtodo Trimming para determinar quanto texto


pode ajustar em uma pgina.

formataString.Trimming = StringTrimming.Word;

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 265

Curso Programando com C# e o Visual Studio .NET 2005

O cdigo abaixo assegura que o texto no seja cortado na pgina:

e.Graphics.MeasureString(stringParaImprimir, fontParaImprimir,
areaLinha, formataString, out numeroCaracteres, out numeroLinhas);

Depois o texto impresso na pgina atravs do mtodo DrawString.

e.Graphics.DrawString(stringParaPagina, fontParaImprimir,
Brushes.Black, areaPagina, formataString);
O If usado para verificar se necessrio mais de uma pgina para imprimir o
texto em questo, para tanto ele usa a propriedade HasMorePages.

if (numeroCaracteres < stringParaImprimir.Length)


{
stringParaImprimir = stringParaImprimir.Substring(numeroCaracteres);
e.HasMorePages = true;
}
else
{
e.HasMorePages = false;
stringParaImprimir = textBox1.Text;
}

Talvez o procedimento do evento PrintDocument1_PrintPage tenha sido um


pouco complicado comparado com os demais vistos neste curso, no se preocupe,
com pouco tempo de experincia voc ser capaz de compreende-lo com facilidade.

14 - Execute sua aplicao.


Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 266

Curso Programando com C# e o Visual Studio .NET 2005

15 - Digite algum texto na caixa de texto, e clique no boto imprimir.

O texto deve ser impresso. A seguinte caixa de dilogo exibida.

16 - Pare a execuo do programa.

Vamos implementar agora o cdigo que permite que o usurio escolha a impressora
e o nmero de pginas que deseja imprimir.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 267

Curso Programando com C# e o Visual Studio .NET 2005

17 - Volte novamente para o procedimento do evento do boto Imprimir e altere o


cdigo para o seguinte:

stringParaImprimir = textBox1.Text;
printDialog1.Document = printDocument1;
DialogResult resultado = new DialogResult();
resultado = printDialog1.ShowDialog();
if (resultado == DialogResult.OK)
printDocument1.Print();

18 - Execute a aplicao.

19 - Digite algum texto na caixa de texto, e clique no boto imprimir.

Agora antes da impresso exibida a janela Imprimir que permite que o usario
escolha a impressora e o nmero de cpias.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 268

Curso Programando com C# e o Visual Studio .NET 2005

20 - Clique em OK para imprimir ou Cancelar para fechar a janela Imprimir e


voltar ao Form1 sem realizar a impresso.

21 - Pare a execuo do programa.

Vamos implementar o cdigo agora que permite a configurao da impresso.

22 - De um clique duplo sobre o Button2 (Configurar Impresso) e digite o


seguinte cdigo pra o procedimento do evento:

pageSetupDialog1.PageSettings = configuracaoDepagina;
pageSetupDialog1.ShowDialog();

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 269

Curso Programando com C# e o Visual Studio .NET 2005

Esse o cdigo que exibe a janela de configurao da impresso e armazena os


valores selecionados na varivel ConfiguracaoDePagina.

23 - Adicione a seguinte linha de cdigo no procedimento do evento click do


Button1.

printDocument1.DefaultPageSettings = configuracaoDepagina;

O procedimento vai ficar assim:

printDocument1.DefaultPageSettings = configuracaoDepagina;
stringParaImprimir = textBox1.Text;
printDialog1.Document = printDocument1;
DialogResult resultado = new DialogResult();
resultado = printDialog1.ShowDialog();
if (resultado == DialogResult.OK)
printDocument1.Print();

24 - Execute a aplicao.

25 - Clique no boto Configurar Impresso.

A janela Configurar pgina exibida com as opes de configurao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 270

Curso Programando com C# e o Visual Studio .NET 2005

26 - Clique em OK.

27 - Pare a execuo do programa.

Vamos agora implementar o cdigo para Visualizar a Impresso.

28 - No modo design de um clique duplo sobre o Button3 e digite o seguinte


cdigo:

pageSetupDialog1.PageSettings = configuracaoDepagina;
stringParaImprimir = textBox1.Text;
printPreviewDialog1.Document = printDocument1;
printPreviewDialog1.ShowDialog();
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 271

Curso Programando com C# e o Visual Studio .NET 2005

As duas primeiras linhas de cdigo so as mesmas usadas no Button1, a terceira


indica que o documento a ser visualizado o PrintDocument1, a ltima linha
exibe a visualizao.

29 - Execute a aplicao.

30 - Digite algum texto e clique no boto Visualizar Impresso.

Se voc quizer imprimir diretamente da janela Visualizar Impresso s clicar na


Impressora. Voc tambm tem opes de Zoom, seleo de pginas e possibilidade
de visualizar vrias pginas de uma s vez na tela.
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 272

Curso Programando com C# e o Visual Studio .NET 2005

31 - Clique em Close para fechar o Visualizar Impresso.

32 - Para a aplicao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 273

Curso Programando com C# e o Visual Studio .NET 2005

Mdulo 12
Distribuindo sua aplicao

Depois de pronta sua aplicao precisa ser distribuida para todos que querem ou
precisam us-la. Para usar a sua aplicao, o nico requisito para o computador do
cliente que tenha instalado o .NET Framework. Este pode ser instalado
diretamente do site da Microsoft, ou ser disponibilizado com sua aplicao no
pacote de instalao. Ele tambm disponvel atravs do Windows Update e
futuramente deve vir junto com todos os sistemas operacionais da Microsoft. Ento,
tendo o .NET Framework instalado na mquina, para sua aplicao funcionar
basta voc copiar o arquivo executvel para a mquina em questo e execut-lo.
No entanto essa prtica no muito recomendada, mais elegante criar um pacote
de instalao para instalar o programa, permitindo assim tambm sua possivel
desinstalao atravs do Painel de Controle, Adicionar/Remover programas.

O .NET Framework no funciona no Windows 95, ento no ser possivel rodar sua
aplicao neste sistema operacional.

As verses Windows 98, ME, NT 4.0, 2000 e XP permitem a instalao do .NET


Framework sem problemas.

Programas que usam o Access como banco de dados tambm precisam que o
arquivo do Access seja copiado junto com a instalao. No necessrio ter
instalado na mquina que vai o rodar o programa o Microsoft Access, o .NET
Framework j contm as classes necessrias para usar o arquivo. Tenha ateno

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 274

Curso Programando com C# e o Visual Studio .NET 2005

com o caminho do banco de dados durante a execuo em outros computadores, se


o caminho estiver errado a aplicao no vai funcionar corretamente.

Durante este capitulo voc vai aprender a criar o pacote de instalao para os seus
programas.

Lio 42 Criando um projeto de instalao

Neste capitulo usaremos o projeto criado na lio 33 Trabalhando com mltiplos


formularios.

1 - Abra no Visual Studio o programa Formularios para Windows Form.

2 - No menu File clique aponte em New e clique em New Project.

3 - Na janela New Project, em Project Type, selecione Setup and Deployment


Projects.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 275

Curso Programando com C# e o Visual Studio .NET 2005

Repare em Templates nas seguites opes:

Setup Project - cria programa de instalao que usa o Windows Installer.

Web Setup Project - usa o Windows Installer e um

Servidor Web para

disponibilidar a aplicao.

Merge Module Project - cria um arquivo de instalao do tipo msm que pode ser
usado por outras aplicaes.

Cab Project - usado quando voc precisa de arquivos de instalao com tamanho
especifico. Se por exemplo sua aplicao tem 30MB e voc quer disponibiliza-la na
internet, pode criar 3 arquivos de 10MB para facilitar o download.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 276

Curso Programando com C# e o Visual Studio .NET 2005

Smart Device CAB Project usado para criao de projeto instalao para
dispositivos mveis.

Setup Wizard - um assistente, atravs dele voc pode criar os tipos citados
acima s que de maneira simplificada.

4 Selecione Setup Wizard.

5 Em Solution, selecione Add to Solution como a imagem:

Isso adiciona o projeto a soluo que esta aberta no Visual Studio, se estiver
marcado Create new Solution, o projeto aberto fechado e criado um novo
projeto.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 277

Curso Programando com C# e o Visual Studio .NET 2005

6 - Em Name voc pode dar uma nome para seu projeto de instalao, neste
exemplo deixarei o padro.

7 - Clique em OK.

O Assistente iniciado.

8 - Clique em Next.

9 - O segundo passo informar o assistente para que tipo de aplicao estamos


criando a instalao. Deixe marcado a opo Create a setup for a Windows
Application e clique em Next.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 278

Curso Programando com C# e o Visual Studio .NET 2005

Isto informa que nossa aplicao do tipo Windows Application e para tal
estamos criando o projeto de instalao.

Na prxima caixa de dilogo voc escolhe os arquivos adicionais que podem ser
incluidos na instalao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 279

Curso Programando com C# e o Visual Studio .NET 2005

10 - Marque a opo Primary output from Formularios e clique em Next.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 280

Curso Programando com C# e o Visual Studio .NET 2005

Isso inclui na instalao arquivos EXE e DLL do projeto.

Se tiver arquivos adicionais para serem adicionados ao projeto como o arquivo do


banco de dados do Access ou algum TXT com informaes sobre o projeto clique
em Add para adicionar o arquivo no passo 4 do assistente.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 281

Curso Programando com C# e o Visual Studio .NET 2005

11 - Clique em Next.

O passo 5 do assistente apenas exibe um resumo das opes escolhidas.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 282

Curso Programando com C# e o Visual Studio .NET 2005

12 - Clique em Finish.

O Visual Studio adiciona um novo projeto na soluo chamado Setup1, como voc
pode ver no Solution Explorer.

O File System Editor tambm aparee como mostra a figura.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 283

Curso Programando com C# e o Visual Studio .NET 2005

Voc usa o File System Editor para adicionar arquivos no seu projeto de
instalao e criar os atalhos do menu Iniciar e Desktop para sua aplicao.

13 - No File System Editor com a pasta Application Folder aberta, de um clique


com o boto direito do mouse em Primary Output from Formularios. No menu
que se abre clique em Create Shortcut to Primary output from Formularios.

Isso cria um atalho para a aplicao como mostra a figura:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 284

Curso Programando com C# e o Visual Studio .NET 2005

14 - Mude o nome do atalho para Formularios.

15 - Arraste o atalho para a pasta Users Programs Menu.

Isso adiciona um atalho para a aplicao no menu Iniciar.

16 - Clique na pasta Users Program Menu.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 285

Curso Programando com C# e o Visual Studio .NET 2005

Quando a aplicao for instalada, um atalho para a mesma ser criado no menu
Iniciar > Programas. Voc pode adicionar tambm o atalho no Desktop para
isso arraste uma cpia do mesmo para a pasta Users Desktop.

17 - Clique em Setup1 na janela Solution Explorer e veja as propriedades


disponveis na janela Properties.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 286

Curso Programando com C# e o Visual Studio .NET 2005

A propriedade Author e Manufacturer so geralmente preenchidas com o nome


da companhia que desenvolve o software, seus valores tambm so usados para
construir o caminho padro onde ser instalado o programa. Uma vez instalado o
programa a propriedade Author exibida nas informaes de suporte em
Adicionar/Remover Programas no Painel de Controle.

A propriedade Title o nome do programa de instalao e a propriedade Version


permite especificar informaes sobre a verso do seu programa de instalao. As
propriedades Product Code contm informaes geradas pelo Visual Studio que
permitem identificar individualmente distribuies do seu programa.
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 287

Curso Programando com C# e o Visual Studio .NET 2005

Ateno, estas propriedades dizem respeito ao programa de instalao e no a


aplicao Formularios.

18 - Na janela Solution Explorer, clique com o boto direito do mouse sobre


Setup1 e clique e em Properties.

exibida a caixa de dilogo Setup1 Property Pages. Esta caixa de dilogo


permite que voc altere algumas das opes escolhidas no assistnte (Setup
Wizard) caso necessrio e customize algumas configuraes adicionais que no
estavam disponveis no assistente.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 288

Curso Programando com C# e o Visual Studio .NET 2005

A caixa Output File Name especifica o nome do arquivo da instalao. Geralmente


ele contm a extenso .msi por ser usado pelo Windows Installer.

A caixa de seleo Package Files contm 3 opes:

As Loose Uncompressed Files - cria arquivos descompactados dentro da pasta


de instalao.

In Setup File - a que cria o arquivo msi.

Cabinet Files(s) - gera os arquivos cab na pasta de instalao.

A caixa de seleo Compression permite escolher a otimizao da compactao


dos arquivos de intalao, a maior parte dos programadores escolhe Optimized
for Size, que prioriza diminuir o tamanho dos arquivos de instalao.
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 289

Curso Programando com C# e o Visual Studio .NET 2005

19 - Clique em OK.

20 - Um passo importante, simples e que no deve ser esquecido mudar para


Release na barra de ferramentas a caixa de seleo Solution Configurations.

Quando estamos criando nossa aplicao importante que esta caixa de seleo
esteja marcada com Debug para que possamos usar as ferramentas de depurao
de erros do Visual Studio. Com o Debug marcado o programa compilado com
informaes extras para permitir a depurao dos erros, essas informaes no so
necessrias quando estamos disponibilizando nossa aplicao e tambm ocasionam
perda de performance na nossa aplicao.

21 - Na janela Solution Explorer, clique com o boto direito do mouse em


Setup1, selecione View, clique em Launch Condition.

aberta a pgina Launch Condition como mostra a figura:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 290

Curso Programando com C# e o Visual Studio .NET 2005

22 - Na pasta Lauch Condition, clique em .NET Framework.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 291

Curso Programando com C# e o Visual Studio .NET 2005

Na janela Properties a propriedade InstallUrl setada com uma pgina na


Internet que possibilita o download e instalao do .NET Framework, como sabe,
necessrio para sua aplicao funcionar. Por padro sempre que inicializado a
instalao verificado se o .NET Framework esta instalado na mquina em questo
ou no. Se no estiver ele usa essa propriedade, a InstallUrl para fazer o
download e instalao do arquivo Dotnetfx.exe, que instala o .NET Framework.
Antes de iniciar o download e instalao da Internet ele emite uma mensagem, o
contudo desta mensagem est na propriedade Message.

Voc pode disponibilizar o .NET Framework junto com sua instalao, para que no
seja necessrio baixar o arquivo da internet. Para isso voc muda a propriedade
InstallUrl para o caminho da sua instalao e se desejar muda a propriedade
Message para um mensagem mais apropriada. Ser necessrio copiar ento o
arquivo Dotnetfx.exe para a pasta de instalao do seu programa ou para a pasta
que voc indicar em InstallUrl.

Vamos deixar como est, para fazer o download se necessrio.

23 -Na janela Solution Explorer, clique com o boto direito sobre Setup1, depois
clique em Build.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 292

Curso Programando com C# e o Visual Studio .NET 2005

Isto vai compilar e executar o projeto de instalao Setup1.

24 - No Windows Explorer localize a pasta do projeto Setup1, ela foi especificada


quando voc criou o projeto.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 293

Curso Programando com C# e o Visual Studio .NET 2005

25 - Entre na pasta Release.

Eis os arquivos necessrios para a instalao do seu projeto, voc pode copiados
em um CD para disponibilizar a instalao do seu programa, como citado
anteriormente voc pode copiar para esta pasta tambm o arquivo Dotnetfx.exe
para disponibilizar junto a instalao do .NET Framework.
Autor: Herbert Moroni Cavallari da Costa Gois
Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 294

Curso Programando com C# e o Visual Studio .NET 2005

Lio 43 Executando o programa de instalao

Vamos agora efetuar a instalao do programa Formularios partir do projeto da


instalao que criamos na lio anterior comparando o processo com as
configuraes que fizemos no projeto Setup1.

1 - Na pasta de instalao de um clique duplo em Setup.exe para iniciar a


instalao.

iniciado o processo de instalao com a seguinte tela:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 295

Curso Programando com C# e o Visual Studio .NET 2005

2 - Clique em Next.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 296

Curso Programando com C# e o Visual Studio .NET 2005

Voc v e pode alterar a pasta de instalao do programa, note que o caminho


C:\Arquivos de programas\HM\Setup1\, HM o contedo da propriedade
Manufacturer, como comentamos na seo anterior. As opes Everyone e Just
me tem a ver com a segurana do Windows. Se voc quer disponibilizar o
programa apenas para o seu usurio na mquina, marque a opo Just me, se
todos os usurios podem executar essa aplicao, marque a opo Everyone.

3 - Clique em Everyone.

4 - Clique em Next.

exibida a tela de confirmao da instalao.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 297

Curso Programando com C# e o Visual Studio .NET 2005

5 - Clique em Next novamente.

iniciada a instalao:

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 298

Curso Programando com C# e o Visual Studio .NET 2005

Aps concluida a instalao exibida o tela Installation Complete.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 299

Curso Programando com C# e o Visual Studio .NET 2005

6 - Clique em Close para finalizar o instalador. Sua aplicao j foi instalada.

7 - Para executar sua aplicao no menu Iniciar > Programa, clique em


Formularios.

Uma vantagem de usar o Installer que o programa registrado no Windows


possibilitando sua possivel desinstalao atravs do Painel de Controle. Para
finalizar este captulo vamos desinstalar nosso programa.

8 - Entre no Painel de Controle > Adicionar/Remover Programas.

9 - Localize o programa Setup1.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 300

Curso Programando com C# e o Visual Studio .NET 2005

Se voc tivesse apenas copiado seu programa para a mquina de destino ele no
apareceria nesta lista.

10 - Clique em Clique aqui para obter informaes de suporte.

Veja que ele mostra as propriedades conforme comentamos na seo anterior.

11 - Clique em Fechar.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 301

Curso Programando com C# e o Visual Studio .NET 2005

12 - Clique em Remover.

exibida a seguinte caixa de mensagem:

13 - Clique em Sim.

O programa desinstalado.

Autor: Herbert Moroni Cavallari da Costa Gois


Site:
www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET

Pgina 302

Você também pode gostar