apostila [iniciante 02] - curso program an do com c e visual studio.net 2005[1]

Upload: genisson-coutinho

Post on 14-Jul-2015

719 views

Category:

Documents


0 download

TRANSCRIPT

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.brConfira 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 ou atravs atravs mediante do do site site www.juliobattisti.com.br de leiles atravs Mercado do e

www.linhadecodigo.com.br www.mercadolivre.com.br,

Livre: email:

contato

[email protected] ou [email protected], 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 [email protected], 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: [email protected].

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.brConfira 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 gratuitos, em portugus, para os exames da Microsoft.

ESTE E-BOOK NO PODE SER FORNECIDO EM UM CD OU DVD DE NENHUMA REVISTA

SE

VOC

OBTEVE DO

UMA

CPIA KAZAA,

DESTE

E-BOOK OU

ATRAVS OUTRO

E-MULE,

MORPHEUS

PROGRAMA

DE

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.brConfira 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.brConfira 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 [email protected] ou [email protected].

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.brConfira tambm o curso: Programando com VB.NET Pgina 6

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

ndice do Cursondice 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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 o uso dos controles:

DateTimePicket, RadioButton, CheckBox, ListBox, ComboBox.

Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.brConfira 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: [email protected].

Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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. O Visual Studio j 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.brConfira 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.brConfira 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.brConfira 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 teclado. ou navegando pelas setas do

Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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

a

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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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: /// /// /// 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.brConfira 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. /// ///

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.brConfira 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.brConfira 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.brConfira 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:

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

Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.brConfira 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 Para uma

PROPSITO breve descrio de uma

classe, mtodo ou propriedade. ... Para uma descrio mais detalhada. Permite delinear pargrafos dentro da tag Permite usar marcadores para formatar uma descrio. Os tipos de marcadores podem ser bullet, number e table. Para disponibilizar um exemplo de como usar um mtodo, propriedade ou outro membro da biblioteca. Para indicar que o texto includo cdigo da aplicao. Para indicar que o texto includo cdigo da aplicao. usada para linhas de cdigo que precisam ser separadas da descrio. Indica uma referencia a outro membro ou campo. O compilador verifica se o membro realmente existe. Para fazer a descrio de uma exceo. Para documentar a acessibilidade. Para documentar um parmetro de um

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

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

mtodo. Para documentar um valor e seu tipo retornado de um mtodo. 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.brConfira 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.brConfira 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.brConfira 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. A CLR fornece vrios benefcios para o

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.brConfira 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.brConfira 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 structures. de variveis Value-Type so: integers, doubles, floats, e

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.brConfira 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, leitura e namespaces. campos somente

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.brConfira 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 break char continue do event

as byte checked decimal double explicit

base case class default else extern

Bool Catch Const Delegate Enum false

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

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

finally foreach in is new out protected return sizeof struct

fixed goto int lock null override public sbyte stackalloc switch

float if interface long object params readonly sealed static this

for implicit internal namespace operator private ref short string 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.brConfira 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.brConfira 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.brConfira tambm o curso: Programando com VB.NET Pgina 64

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

C# Type bool byte sbyte char decimal double float int uint long ulong object short ushort string

.NET Framework type System.Boolean System.Byte System.SByte System.Char System.Decimal System.Double System.Single System.Int32 System.UInt32 System.Int64 System.UInt64 System.Object System.Int16 System.UInt16 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.brConfira 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 bool byte sbyte char decimal double float int uint long

Valores possveis de se armazenar Verdadeiro ou Falso (Valores booleandos) 0 a 255 (8 bits) -128 a 127 (8 bits) Um caractere (16 bits) 1.0 1028 a 7.9 1028 (128 bits) 5.0 10324 a 1.7 10308 (64 bits) 1.5 1045 a 3.4 1038 (32 bits) -2,147,483,648 a 2,147,483,647 (32 bits) 0 a 4,294,967,295 (32 bits) 9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 (64 bits)

ulong object short ushort string

0 a 18,446,744,073,709,551,615 (64 bits) Qualquer tipo. -32,768 a 32,767 (16 bits) 0 a 65,535 (16 bits) 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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 Label1

Propriedade Text

Valor Valor1

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

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

Label2 Label3 Button GroupBox RadioButton1 RadioButton2 RadioButton3 RadioButton4 RadioButton5

Text Text Text Text Text Text Text Text Text

Valor2 Resultado Calcular Operador + Adio - Subtrao * Multiplicao / Diviso % 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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 o 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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 { // corpo do mtodo }opcional

)

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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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 adicionarValores() adicionarValores(39) adicionarValores(39, 3)

// Falta parnteses // Falta argumentos // Falta um argumento // 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.brConfira 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.