Escolar Documentos
Profissional Documentos
Cultura Documentos
Programando Com C - e Visual Studio - Net 2005
Programando Com C - e Visual Studio - Net 2005
NET 2005
Pgina 1
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:
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.
Cursos de informtica.
Pgina 2
Simulados
gratuitos,
em
portugus,
para
os
exames
da
Microsoft.
SE
VOC
ATRAVS
OUTRO
OBTEVE
DO
UMA
E-MULE,
PROGRAMA
CPIA
KAZAA,
DE
DESTE
E-BOOK
MORPHEUS
OU
COMPARTILHAMENTO,
Pgina 3
Para que voc possa acompanhar as lies deste curso necessrio que voc j
tenha preenchido os seguintes pr-requisitos:
Pgina 5
Palavras do autor:
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,
Pgina 6
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
Pgina 7
Pgina 8
Pgina 9
Introduo
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.
Captulo 2: Neste captulo voc vai aprender sobre variveis, tipos de dados,
converso de tipos de dados, operadores, o que Common language Runtime e
Pgina 10
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:
Pgina 11
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.
Pgina 12
Mdulo 1
Bem vindo ao C# e ao Visual Studio.NET 2005
Pgina 13
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.
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.
Pgina 14
Perceba que voc pode ainda alterar o caminho onde sua aplicao ser
salva e o nome da sua Soluo.
6 Clique em OK.
Pgina 15
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 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:
Pgina 16
arquivo.
Visual
Studio
adicionou
algum
cdigo
nele
Aos poucos ns vamos explorando mais o Visual Studio, vamos ao nosso primeiro
exemplo.
Pgina 17
Nosso primeiro exemplo bem simples, e um clssico para quem esta aprendendo
qualquer linguagem, ele escreve Hello World no console.
Pgina 18
Pgina 19
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 (
teclado.
Pgina 20
Pgina 21
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:
Pgina 22
Para exibir a janela Output na barra de menus clique em View, Output ou pressione
Ctrl+W+O.
Pgina 23
Pgina 24
Pgina 25
Pgina 26
Pgina 27
using System;
namespace txtHello
{
Pgina 28
class Class1
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
}
4 Feche o notepad.
Pgina 29
Para
compilarmos
manualmente
nosso
programa
so
necessrias
algumas
Ele vai listar os arquivos da pasta, no caso vai mostrar o arquivo teste.cs.
Pgina 30
Pgina 31
namespace txtHello
{
class Class1
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
}
Pgina 32
prompt para se familiarizar melhor com ele, j que no falaremos muito mais
sobre ele no curso.
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");
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.
Pgina 33
Pgina 34
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.
Pgina 35
Pgina 36
Pgina 37
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.
Pgina 38
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.
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
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
{
namespace WinHello
{
public class Form1 ...
{
...
}
}
Pgina 40
mtodos
nos
prximos
tutoriais.
Este
mtodo
esta
no
arquivo
Pgina 41
Pgina 42
}...
Pgina 43
Para voltar ao modo design, tambm na janela Solution Explorer clique em View
Design.
Pgina 44
Isso serve para os outros controles tambm, clique sobre os outros controles e note
os marcadores.
Note que ele vai diretamente para o painel de cdigo e criado automaticamente o
seguinte cdigo.
Pgina 45
Tudo que for digitado dentro deste cdigo ser executado assim que o Button1 for
clicado quando o programa estiver executando.
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.
16 Execute o programa.
Para executar o programa voc pode clicar e F5, ou no menu Debug clicar em
Start Debugging.
Pgina 46
Pgina 47
Pgina 48
4 Dentro do mtodo Main digite o cdigo que escreve Hello World no prompt
de comando. Se tiver duvida consulte a lio 1.
Pgina 49
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.
Pgina 50
Voc vai visualizar o cdigo XML com os comentrios que inserimos no cdigo no
Internet Explorer.
Pgina 51
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>
Pgina 52
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
<example> </example>
<code> </code>
<c> </c>
<see cref="member"/>
<exception> </exception>
<permission> </permission>
Pgina 53
mtodo.
<returns> </returns>
<value> </value>
Existe uma maneira mais fcil de gerar sua documentao XML, usando o Visual
Studio sem precisar do prompt de comando.
Pgina 54
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.
Pgina 55
Mdulo 2
Variveis
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.
Pgina 56
Voc vai entender melhor os benefcios do .NET Framework durante o curso. Como
voc pode ver ele muito importante para a plataforma .NET.
Language
Runtime.
CLR
fornece
vrios
benefcios
para
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.
Pgina 57
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.
A referencia aos dados de uma varivel pode ser feita de duas maneiras:
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:
Pgina 58
Value-Type
Exemplos
de
variveis
Value-Type
so:
integers,
doubles,
floats,
structures.
Reference-Type
Vamos aprender agora como declarar variveis, seus principais tipos e como
atribuir e recuperar valores delas.
Pgina 59
Quando o nome tiver mais que uma palavra, a primeira letra de cada
palavra aps a primeira deve ser maiscula (conhecido como notao
camelCase);
Conveno PascalCasing
void InitializeData();
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
int loopCountMax;
Para
maiores
informaes
sobre
conveno
de
nomes
pesquise
Naming
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.
abstract
as
base
Bool
break
byte
case
Catch
char
checked
class
Const
continue
decimal
default
Delegate
do
double
else
Enum
event
explicit
extern
false
Pgina 61
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
Pgina 62
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.
Estamos declarando nesse exemplo duas variveis do tipo integer, uma chamada
contador e a outra numeroCarro.
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.
Pgina 63
int numeroFuncionario;
numeroFuncionario = 23;
Isso faz mesma coisa que o exemplo anterior, s que tudo em uma linha.
Mais um exemplo:
char letraInicial = M;
Pgina 64
C# 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;
Pgina 65
C# Type
bool
byte
0 a 255 (8 bits)
sbyte
char
decimal
double
float
int
uint
long
9,223,372,036,854,775,808 a
9,223,372,036,854,775,807 (64 bits)
ulong
object
Qualquer tipo.
short
ushort
string
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
Console.WriteLine(minhaVariavel.GetType());
int contador;
contador = 2;
contador = contador + 40;
Pgina 67
Perceba que para somar o valor a varivel precisamos repetir o nome da varivel.
contador += 40;
contador -= 23;
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.
Pgina 68
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:
long salario;
salario = 500 * 20;
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
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);
Pgina 70
3 Label
3 TextBox
1 Button
1 GroupBox
5 RadioButton
Controle
Propriedade
Valor
Label1
Text
Valor1
Pgina 71
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
5 Execute a aplicao.
Pgina 72
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.
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).
Pgina 73
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
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
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
textBox3.Text = resultado.ToString();
8 Execute o programa.
Pgina 76
Subtrao:
Multiplicao:
Pgina 77
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.
Pgina 78
10 Pare a aplicao.
Precedncia de Operadores:
2+3*4
2+3*4
2 + 12
Pgina 79
14
(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.
Pgina 80
Mdulo 3
Mtodos e Escopo
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.
Pgina 81
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.
Pgina 82
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;
}
Pgina 83
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;
...
}
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
Pgina 84
mtodo retornar uma informao, voc precisa ter uma forma de receber essa
informao, como uma varivel, por exemplo.
nomeDoMetodo (listaDeArgumentos
opcional)
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
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));
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
Por exemplo:
class Exemplo
{
void mtodo()
{
int variavel;
...
}
void outroMetodo()
{
variavel = 42;
Pgina 87
}
}
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
}
}
Pgina 89
2 No painel de cdigo crie digite o seguinte cdigo que cria o mtodo lerDouble
dentro da classe Program.
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.
Pgina 90
Digite o seguinte cdigo, voc pode digit-lo em qualquer local desde que esteja
dentro da Classe no nosso caso a Program.
Esse mtodo faz a mesma coisa que o mtodo lerDouble, s que retorna uma
integer (inteiro).
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
{
public double lerDouble(string inicie)
{
Console.Write(inicie);
string linha = Console.ReadLine();
return double.Parse(linha);
Pgina 92
Esse mtodo retorna a multiplicao dos dois parmetros que so enviados para
ele.
using System;
using System.Collections.Generic;
using System.Text;
Pgina 93
namespace Metodo
{
class Program
{
public double lerDouble(string inicie)
{
Console.Write(inicie);
string linha = Console.ReadLine();
return double.Parse(linha);
Pgina 94
Chamando Mtodos
9 Crie um novo mtodo que no retorna nada, ou seja, do tipo void. De o nome
dele de Executar
Pgina 95
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.
(new Class1()).executar();
Isso vai executar o mtodo executar assim que o programa for iniciado
Pgina 96
A taxa : 5197,5
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);
Pgina 97
Pgina 98
}
}
}
17 Clique com o boto direito do mouse sobre ela, no menu que se abre clique
em Run To Cursor.
Pgina 99
Pgina 100
Pgina 101
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.
Pgina 102
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.
Pgina 103
Pgina 104
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.
Pgina 105
Parabns, voc escreveu mtodos e os chamou com sucesso, alem disso usou o
depurador do Visual Studio .NET.
Pgina 106
Mdulo 4
Estruturas de Deciso
Exemplo:
Se preo for menor que 100 ento o resultado da expresso acima VERDADEIRO.
Caso contrario o resultado FALSO.
Pgina 107
OPERADOR
QUER DIZER
EXEMPLO
RESULTADO
==
Igual a
Salario == 100
FALSO
!=
Diferente de
Salario != 100
VERDADEIRO
>
Maior que
VERDADEIRO
<
Menor que
FALSO
>=
Maior ou igual a
VERDADEIRO
<=
Menor ou igual a
FALSO
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
{
bloco-de-codigo1
}
else
{
bloco-de-codigo2
}
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
valor maior que 1000, e caso seja verdadeiro ser somado 10% ao Salario. Se
Salario for menor que 1000 nada ser executado.
Pgina 110
possvel avaliar diversos else ifs com uma determinada expresso. Como no
exemplo abaixo:
Exemplo:
Pgina 111
Nesta linha testamos se o Salario maior ou igual a 500 e o Salario menor que
600.
O && conhecido como um OPERADOR LGICO, temos quatro deles como mostra
a tabela a seguir:
OPERADOR LGICO
QUER DIZER
&& (And)
|| (Or)
! (Not)
Pgina 112
EXPRESSO LGICA
RESULTADO
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
2 TextBox
1 Button
Controle
Propriedade
Valor
Label1
Text
Nome
Label2
Text
Senha
Textbox1
Text
Textbox2
Text
Button1
Text
Validar
Pgina 114
Voc pode substituir o valor do nome para o seu nome e sua senha.
6 Execute o programa.
Pgina 115
8 Clique em validar.
Pgina 116
9 Clique em Ok.
MessageBox.Show("Usuario Invalido");
Close();
Em resumo:
Pgina 117
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
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");
Pgina 119
break;
case 6:
MessageBox.Show("Sexta-Feira");
break;
case 7:
MessageBox.Show("Sabado");
break;
}
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
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;
Pgina 121
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.
Pgina 122
Pgina 123
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;
}
Pgina 124
Pgina 125
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.
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
case 6:
case 9:
case 11:
MessageBox.Show ("Este mes tem 30 dias");
break;
default:
MessageBox.Show ("Este mes tem 31 dias");
break;
}
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.
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;
Pgina 127
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.
Pgina 128
Mdulo 5
Estruturas de Repetio
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.
while ( booleanExpression )
statement
Pgina 129
1 Button
1 ListBox
Pgina 130
int contador = 0;
while (contador < 20)
{
contador++;
listBox1.Items.Add(contador);
}
Pgina 131
int contador = 0;
while (contador < 20)
{
contador++;
listBox1.Items.Add(contador);
}
Pgina 132
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.
contador = contador + 1
contador = 1
Pgina 133
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
do
statement
while (booleanExpression);
Pgina 134
int contador = 0;
while (contador < 20)
{
contador++;
listBox1.Items.Add(contador);
}
int contador = 0;
while (contador < 20)
{
contador++;
if (contador == 10)
{
break;
}
listBox1.Items.Add(contador);
}
4 - Execute a aplicao:
Pgina 135
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.
Pgina 136
if (contador == 10)
{
break;
}
}
while (contador < 20);
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.
Pgina 137
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..
statement
1 - Crie uma nova aplicao do tipo Windows Application com nome For.
Pgina 138
Pgina 139
5 - Execute a aplicao.
Pgina 140
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
Perceba que o i+= 5 fez com que o nmero adicionado a variavel a cada passada
do loop 5 ao invs de 1.
Pgina 142
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.
Pgina 143
Mdulo 6
Gerenciando Erros e Excees
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.
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:
Pgina 144
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?
Pgina 145
1 Button
2 TexBox
Pgina 146
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:
Tudo que estiver dentro deste procedimento, chamado Form1_Load ser executado
assim que o programa for executado.
button1.Text = "Testar";
Pgina 147
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.
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
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.
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.
Pgina 149
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.
8 - De um clique duplo sobre a mensagem The name textox2 does not exist in
the context
Pgina 150
Ele escreve a mensagem Voc no adolescente, porque ele entra no else do IF,
j que 21 no esta entre 13 e 20.
Pgina 151
13 - Feche a aplicao.
Pgina 152
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:
Pgina 153
Pgina 154
Pgina 155
A seta amarela representa a prxima linha de cdigo que ser executada. Neste
momento a linha amarela ainda no foi executada.
Pgina 156
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.
22 - Pare a execuo.
Pgina 157
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.
Pgina 158
idade = int.Parse(textBox1.Text);
2 - Execute o programa.
5 - Clique com o boto direito sobre o nome da varivel idade, e selecione Add
Watch, como na figura:
Pgina 159
adicionado uma linha com o nome da varivel e seu valor na janela Watch.
Pgina 160
Agora a cada passo do programa voc vai poder acompanhar o valor de cada um
destes itens.
Pgina 161
Para remover um item da janela Watch, clique sobre o mesmo, exemplo, idade <
20 e pressione a tecla Delete no teclado.
Pgina 162
Para esse item suponho que voc tenha finalizado o anterior e o que o exemplo
esta com o BreakPoint marcado.
1 - Execute o programa.
Pgina 163
Pgina 164
6 - Clique duas vezes sobre o boto Step Into na barra de ferrametas Debug.
Pgina 165
8 - Clique no boto Step Into da barra de ferramentas Debug mais duas vezes.
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
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.
Pgina 167
1 Button
1 PictureBox
Pgina 168
pictureBox1.Image = System.Drawing.Image.FromFile(@"a:\inverno.jpg");
Quando for passar um caminho como string utilize o @ antes como fizemos no
cdigo acima.
9 - Clique no boto Testar Drive, a imagem deve abrir no Form como a seguir:
Pgina 169
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
{
pictureBox1.Image = System.Drawing.Image.FromFile(@"a:\inverno.jpg");
}
catch
{
MessageBox.Show("Insira o disquete no drive A");
}
15 - Execute a aplicao.
Pgina 171
Perceba que agora ele mostra a caixa de dialgo com a mensagem que
especificamos. Isso muito mais elegante do que o erro gerando anteriormente.
19 - Feche a aplicao.
Pgina 172
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
try
{
pictureBox1.Image = System.Drawing.Image.FromFile(@"a:\inverno.jpg");
}
catch
{
MessageBox.Show("Insira o disquete no drive A");
}
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");
}
Pgina 174
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:
Pgina 175
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
{
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.
try
{
pictureBox1.Image = System.Drawing.Image.FromFile(@"a:\inverno.jpg");
}
catch
{
MessageBox.Show("Insira o disquete no drive A");
try
Pgina 177
{
pictureBox1.Image = pictureBox1.Image =
System.Drawing.Image.FromFile(@"a:\inverno.jpg");
}
catch
{
MessageBox.Show("Falha ao abrir o arquivo");
button1.Enabled = false;
}
}
Pgina 178
6 - Clique em OK.
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
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.
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
condio para testar tambm, e se voc quer privar os usurios de vrias questes
a serem respondidas para prevenir os erros.
Mas o ideal o uso das duas, tanto da programao defensiva como dos blocos
Try...Catch.
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
catch
{
retorno += 1;
if (retorno <= 2)
{
MessageBox.Show("Insira o disquete no drive A");
}
else
{
MessageBox.Show("Recurso no disponivel");
button1.Enabled = false;
}
}
Pgina 182
Mdulo 7
Arrays e Colees
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.
Vamos fazer um exemplo, nele vamos criar o programa que armazenar os dados
nos nomes dos jogadores e as faltas cometidas por eles.
Pgina 183
3 Button
1 ListBox
2 Labels
2 TextBoxes
Pgina 184
10 - Na janela Solution Explorer clique no boto View Code para ir para o Painel
de cdigo.
Pgina 185
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.
jogadores[0] = textBox1.Text;
Pgina 186
listBox1.Items.Add(jogadores[0]);
textBox1.Text = jogadores[0];
S que para inserir um item no ListBox precisamos usar seu mtodo Add.
15 Execute a aplicao.
Pgina 187
Agora que voc j compreende como inserir e ler dados do array vamos avanar
no exemplo.
Pgina 188
18 Pare a execuo.
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.
Pgina 189
Pgina 190
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
A cada passada pelo For o i assume o valor de uma linha do array at chegar ao
final.
23 - Execute a aplicao.
Faa isso sucessivamente at que o boto seja desabilitado, ou seja, que o array
seja totalmente preenchido.
Pgina 192
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.
Pgina 193
jogadores[contador] = textBox1.Text;
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.
int contadorFaltas = 0;
Pgina 194
button2.Enabled = false;
}
Note tambm que agora atribuimos os valores segunda coluna, como mostra o
cdigo:
jogadores[contadorFaltas, 1] = textBox2.Text;
Pgina 195
Agora precisamos mudar o cdigo do button3, que exibe os dados, para listar as
faltas tambm.
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.
Pgina 196
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.
Pgina 197
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
Pgina 199
5 - Clique no Button1.
Criamos um loop que passou por cada controle modificando sua propriedade Text.
Pgina 200
6 - Voc pode filtrar os controles que quer modificar tambm, vamos fazer isso
modificando o Loop do Button1 para o seguinte:
7 - Execute a aplicao.
Pgina 201
8 - Clique no Button1.
Pgina 202
Controls[0].Left += 35;
Controls[0].Left += 35;
10 - Execute a aplicao.
Pgina 203
11 - Clique no Button2.
Pgina 204
Mdulo 8
Aprofundando em Windows Forms
Sempre que voc cria uma Windows Application um formulrio j criado por
padro, ele conhecido como formulrio Base.
Pgina 205
Pgina 206
Vamos fazer um exemplo que ilustra como podemos trabalhar com mltiplos
formulrio.
Pgina 207
Pgina 208
Pgina 209
10 Execute a aplicao.
Pgina 210
O formulrio Vermelho aberto, perceba que voc pode clicar novamente no Form1
e depois voltar para o Vermelho e assim por diante.
Pgina 211
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 esta lio continuaremos usando o exemplo que criamos na lio anterior.
Pgina 212
Pgina 213
Pgina 214
label1.Text = mensagem;
6 - Execute a aplicao.
Pgina 215
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
Crie
uma
nova
aplicao
do
tipo
Windows
Application
chamada
Posicionando.
3 - Execute a aplicao.
Essa propriedade faz com que o formulrio em questo seja exibido no centro da
tela.
Pgina 217
Agora voc deve especificar manualmente como os valores que sero usados para
posicionar o formulrio na tela.
7 - Execute a aplicao.
Pgina 218
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.
Pgina 219
1 Label
1 TextBox
1 Button
4 Clique sobre cada um dos controles acima e visualize sua lista de eventos.
Pgina 220
Mdulo 9
Usando controles do Windows Forms
Pgina 221
O objeto DateTimePicket por padro exibe a data atual, mas voc pode ajustar
esse valor na propriedade Value.
Pgina 222
Voc pode escolher a data no calendrio. Isso muito prtico e evita erros.
Pgina 223
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.
Pgina 224
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.
12 - Clique em OK.
Pgina 225
Pgina 226
2 GroupBox
3 RadioButton
3 CheckBox
1 ListBox
1 ComboBox
8 Label
Pgina 227
Pgina 228
Pgina 229
17 - Clique em OK.
Pgina 230
20 - Execute a aplicao.
Pgina 231
Pgina 232
label3.Text = "PC";
label3.Text = "MAC";
label3.Text = "Notebook";
Pgina 233
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
label6.Text = "";
if (checkBox2.Checked == true)
label7.Text = "Calculadora";
else
label7.Text = "";
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.
Pgina 235
label4.Text = listBox1.SelectedItem.ToString();
label5.Text = comboBox1.SelectedItem.ToString();
Pgina 236
Pgina 237
Mdulo 10
Bancos de dados com ADO.NET
Pgina 238
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.
Pgina 239
Pgina 240
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.
Pgina 241
Pgina 242
7 - Clique em Sim.
Pgina 243
Pgina 244
10 - Feche o Access.
Pgina 245
Pgina 246
Pgina 247
Escolhemos que nossa origem de dados ser um banco de dados, agora criaremos
uma nova conexo com o banco de dados.
5 Na janela Choose Data Source, selecione Microsoft Access Database File, j que
criamos nosso banco de dados no Access.
Pgina 248
Pgina 249
Pgina 250
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.
Pgina 251
Pgina 252
Pgina 253
Nesta janela configuramos como os controles de tela devem ser criados baseados
nos campos das tabelas do banco de dados.
16 Arraste Clientes para o formulrio, ele deve ficar como a seguinte figura:
Pgina 254
17 Execute a aplicao.
Pgina 255
Pgina 256
22 Execute a aplicao.
Pgina 257
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:
Pgina 258
Pgina 259
Mdulo 11
Imprimindo
3 Button
1 TextBox
Pgina 260
1 PrintDocument
1 PrintDialog
1 PageSetupDialog
1 PrintPreviewDialog
Multiline = True
ScrollBars = Vertical
Pgina 261
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.
Pgina 262
stringParaImprimir = textBox1.Text;
printDialog1.Document = printDocument1;
printDocument1.Print();
Pgina 263
int numeroLinhas;
int numeroCaracteres = 0;
string stringParaPagina;
StringFormat formataString = new StringFormat();
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
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.
formataString.Trimming = StringTrimming.Word;
Pgina 265
e.Graphics.MeasureString(stringParaImprimir, fontParaImprimir,
areaLinha, formataString, out numeroCaracteres, out numeroLinhas);
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.
Pgina 266
Vamos implementar agora o cdigo que permite que o usurio escolha a impressora
e o nmero de pginas que deseja imprimir.
Pgina 267
stringParaImprimir = textBox1.Text;
printDialog1.Document = printDocument1;
DialogResult resultado = new DialogResult();
resultado = printDialog1.ShowDialog();
if (resultado == DialogResult.OK)
printDocument1.Print();
18 - Execute a aplicao.
Agora antes da impresso exibida a janela Imprimir que permite que o usario
escolha a impressora e o nmero de cpias.
Pgina 268
pageSetupDialog1.PageSettings = configuracaoDepagina;
pageSetupDialog1.ShowDialog();
Pgina 269
printDocument1.DefaultPageSettings = configuracaoDepagina;
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.
Pgina 270
26 - Clique em OK.
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
29 - Execute a aplicao.
Pgina 272
32 - Para a aplicao.
Pgina 273
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.
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
Pgina 274
Durante este capitulo voc vai aprender a criar o pacote de instalao para os seus
programas.
Pgina 275
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.
Pgina 276
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.
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.
Pgina 277
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.
Pgina 278
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.
Pgina 279
Pgina 280
Pgina 281
11 - Clique em Next.
Pgina 282
12 - Clique em Finish.
O Visual Studio adiciona um novo projeto na soluo chamado Setup1, como voc
pode ver no Solution Explorer.
Pgina 283
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.
Pgina 284
Pgina 285
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.
Pgina 286
Pgina 287
Pgina 288
Pgina 289
19 - Clique em OK.
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.
Pgina 290
Pgina 291
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.
23 -Na janela Solution Explorer, clique com o boto direito sobre Setup1, depois
clique em Build.
Pgina 292
Pgina 293
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
Pgina 295
2 - Clique em Next.
Pgina 296
3 - Clique em Everyone.
4 - Clique em Next.
Pgina 297
iniciada a instalao:
Pgina 298
Pgina 299
Pgina 300
Se voc tivesse apenas copiado seu programa para a mquina de destino ele no
apareceria nesta lista.
11 - Clique em Fechar.
Pgina 301
12 - Clique em Remover.
13 - Clique em Sim.
O programa desinstalado.
Pgina 302