105_Apostila ASP Net, C# e Visual Basic.net

Embed Size (px)

Citation preview

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    1/141

    Aprenda de uma forma simples ,objetiva e direta os principais conceitosda Plataforma .Net FrameWork SDK.

    O curso apresenta o ASP.Net aprimeira ferramenta RAD produzidapara o desenvolvimento de aplicaesbaseadas na Web. Alm de apresentaras linguagens C# e Visual Basic.Net.

    Curso de Introduo aPlataforma .Net FrameWork SDK

    Instrutores:

    Breno Gontijo [email protected]

    Cludio Jnior [email protected]

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    2/141

    ndice Analtico

    Captulo 1 Introduo a Plataforma .Net FrameWork SDK ....................... 1

    Introduo ......................................................................................................1Sutes .............................................................................................................1Termos da Plataforma ..................................................................................2

    Captulo 2 ASP.Net .......................................................................................4

    Introduo .....................................................................................................4Do HTML ao ASP.Net ..................................................................................4Como o ASP.Net Funciona ..........................................................................6Criando Pginas ASP.Net ............................................................................7Mantendo o Estado de uma Pgina ASP.Net ............................................ 11ViewState ...................................................................................................11Importando Espaos de Nomes ................................................................. 13Objeto SESSION ........................................................................................14Vantagens Adicionais .................................................................................15

    Captulo 3 Variveis .....................................................................................16

    Variveis na Linguagem C# .......................................................................18Inteiros ..................................................................................................18Lgicos ..................................................................................................19Caracteres .............................................................................................19Ponto Flutuante ..................................................................................... 20Decimal .................................................................................................20String .....................................................................................................21Object ....................................................................................................22Converso de Valores ..........................................................................22Checked e Unchecked ..........................................................................24Operadores ............................................................................................25

    Enum .....................................................................................................25Struct .....................................................................................................26New .......................................................................................................27Arrays ....................................................................................................29Exemplos e Exerccios ..........................................................................30

    Variveis na Linguagem Visual Basic.Net ..................................................33Inteiros ..................................................................................................33Lgicos ..................................................................................................34Caracteres .............................................................................................34Ponto Flutuante ..................................................................................... 35Date .......................................................................................................35

    String .....................................................................................................36Object ....................................................................................................37Converso de Valores ..........................................................................37

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    3/141

    Operadores ...........................................................................................41Array ......................................................................................................42

    Atribuindo Valores aos Arrays .........................................................42Arrays Multidimensionais ................................................................. 43

    As funes REDIM e ERASE ...............................................................43Exemplos e Exerccios ..........................................................................44

    Captulo 4 Estruturas de Controle ............................................................46

    Estruturas de Deciso ...........................................................................46Instruo if .. then .. else ..elseif ......................................................46Instruo switch e case ...................................................................48

    Estruturas de Repetio .......................................................................49Instruo For ....................................................................................49Instruo While ................................................................................50Instruo Do While ..........................................................................50

    Instruo Do Loop ...........................................................................51Exemplos e Exerccios ..........................................................................52

    Captulo 5 Formatao ................................................................................57

    Formatao de Nmeros ......................................................................57Formatao de Nmeros na Linguagem C# .........................................57Formatao de Nmeros na Linguagem VB.Net ..................................60Exemplos ...............................................................................................64Formatao de Datas e Horas ...............................................................65

    Formatao de datas e Horas na Linguagem C# .................................65Exemplos ..............................................................................................69Formatao de datas e Horas na Linguagem VB.Net ..........................70Exemplos ...............................................................................................76

    Captulo 6 WEB FORMS ..............................................................................78

    Principais Eventos do Web Forms ........................................................79Page_Load ......................................................................................79OnClick ............................................................................................80

    OnSelectedIndexChanged ..............................................................81Principais Componentes do ASP.Net ...................................................83

    TextBox ............................................................................................85Label ................................................................................................86Button ..............................................................................................86DropDownList ..................................................................................87ListBox .............................................................................................89CheckBox ........................................................................................89CheckBoxList ...................................................................................90RadioButton .....................................................................................91RadioButtonList ...............................................................................91HyperLink .........................................................................................92Panel ................................................................................................93

    Exemplos e Exerccios ..........................................................................94

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    4/141

    Captulo 7 Controle de Validao ...............................................................98

    RequiredFieldValidator ..........................................................................99CompareValidator ...............................................................................100RangeValidator ...................................................................................101CustomValidator ..................................................................................103RegularExpressionValidator ...............................................................103ValidationSummary .............................................................................105Exemplos e Exerccios .........................................................................106

    Captulo 8 - ADO.NET ..................................................................................109

    Vantagens do ADO.NET ......................................................................109OleDb ...................................................................................................110SQL .....................................................................................................111

    DataSet ...............................................................................................111Conectando com um Banco de Dados ................................................112Lendo um Banco de Dados .................................................................113Incluir Dados ........................................................................................115Excluir Dados .......................................................................................116Atualizar Dados ....................................................................................117DataGrid ...............................................................................................118Exemplos e Exerccios .........................................................................121

    Captulo 9 Componentes ..........................................................................126

    Vantagens ............................................................................................126Problemas ............................................................................................126Namespaces ........................................................................................127Criando um Componente .....................................................................128Usando o Componente ........................................................................129Exemplos e Exerccios .........................................................................130

    Captulo 10 - Web Services .......................................................................133

    SOAP ...................................................................................................134

    Criando um WebService ..................................................................... 134Usando o WebService .........................................................................135

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    5/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 1

    Captulo 1 - Introduo a Plataforma .Net FrameWork

    INTRODUO

    A Plataforma Microsoft.NET oferece uma alternativa de ambiente para produzire executar aplicaes web, rodando-as em PCs, micros de mo e outrosdispositivos, como telefones celulares. O plano da Microsoft tornar a infra-estruturadessa plataforma amplamente disponvel. Tanto que ela j pode ser baixada em seusite e dever fazer parte das prximas verses do Windows.

    A Plataforma .NET tambm a principal arma com a qual a Microsoft tentamarcar posio no concorridssimo mercado dos Servios Web (Web Services) -nome dado a programas ou componentes que devem ser utilizados na Internet.

    Estes servios on-line so a pedra de toque da Internet, tal como osestrategistas das grandes empresas a imaginam num futuro prximo.

    Por meio de servios web, empresas trocaro informaes e faro negcios.Aplicaes que rodam num local podero usar mdulos localizados num servidorremoto, consolidando um modelo de computao distribuda. Residentes emservidores web, esses servios podem fornecer produtos finais - por exemplo,documentos e informaes - ou desempenhar tarefas especficas, como realizarclculos e autenticar transaes. Espera-se, assim, que os sites operem de formaintegrada, gerando benefcios para empresas e indivduos. Na essncia, essa visodos servios web hoje compartilhada por grandes nomes como IBM, Sun e Oracle,e todos tm iniciativas nessa rea.

    Uma caracterstica central da Plataforma .NET aderir aos padres da Internetsem abrir mo de procedimentos j consagrados no Windows. Para isso conta com

    o Visual Studio.NET, sute de programao definida pela Microsoft como"especialmente voltada para a rpida construo e integrao de Web Services".O produto incorpora as linguagens Visual Basic, Visual C++ e Visual C#

    ("CSharp), todas com sobrenome .NET. Linguagens tradicionais, as duas primeirassofreram ajustes para a nova plataforma, enquanto o C# comea do zero.

    SUTES

    A sute, que j est no mercado brasileiro, oferecida em trs pacotesdiferentes: Enterprise Architect, Enterprise Developer e Professional. O primeiro omais completo e inclui, alm das trs linguagens, ferramentas para depurao emodelagem, desenvolvimento em grupos e todos os servidores do Windows. OEnterprise Developer, mais simples, no tem, por exemplo, os recursos demodelagem. Mais voltada para o programador individual, a edio Professional notraz servidores nem itens de trabalho em grupo.

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    6/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 2

    TERMOS DA PLATAFORMA

    CLR - Sigla de Common Language Runtime. Base comum a todas aslinguagens .NET, o CLR o ambiente que gerencia a execuo de cdigo escritoem qualquer linguagem. Faz parte do Framework.

    FRAMEWORK - o modelo da plataforma .NET para construir, instalar e rodarqualquer aplicao, no desktop ou na Internet. Para executar um programa .NET, preciso ter o Framework instalado.

    IDE COMPARTILHADO - Ambiente integrado de programao (IntegratedDevelopment Environment) do Visual Studio.NET. Diferentes linguagens usam omesmo editor de cdigo e depurador e compilam executveis na linguagem MSIL.Alm das linguagens da Microsoft, j h mais de 20 outras (Perl, Cobol, Pascal, etc)

    que podem usar esse ambiente.MSIL - Microsoft Intermediate Language. Quando se compila uma aplicao

    .NET, ela convertida para uma linguagem intermediria, a MSIL, um conjunto deinstrues independentes de CPU. Na hora de executar o programa, um novocompilador, chamado Just-in-time (JIT) Compiler, o converte para o cdigo nativo, ouseja, especfico para o processador da mquina.

    MANAGED CODE - Cdigo administrado, ou seja, cdigo escrito para rodarcom o runtime do VS.NET. No VS.NET, somente o C++ produz programas que nodependem do runtime, o chamado Unmanaged code.

    SOAP - Sigla de Simple Objetc Access Protocol, ou protocolo simples deacesso a objetos. O SOAP um padro aberto, baseado em XML, criado pelaMicrosoft, Ariba e IBM para padronizar a transferncia de dados entre aplicaes.Pode ser usado em combinao com vrios outros protocolos comuns da Internet,como HTTP e SMTP.

    UDDI - Iniciais de Universal Description, Discovery and Integration, umaespcie de pginas amarelas para web services. Na UDDI, empresas expem seusservios para que outras possam utiliz-los.

    WEB SERVICES - programa completo ou componente de software residentenum servidor web.

    XML - Sigla de Extensible Markup Language, o XML uma linguagem baseadaem tags semelhante ao HTML. Sua principal caracterstica a extensibilidade. Quememite um documento XML pode criar tags personalizadas, que so explicadas numdocumento anexo, que tem extenso XSD.

    XSD - Sigla de XML Schema Definition. Arquivo associado a um documentoXML que descreve e valida aos dados no documento. Assim como as linguagens deprogramao, os XSDs aceitam dados de diferentes tipos, como nmeros, data emoeda.

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    7/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 3

    XML WEB SERVICES - Blocos fundamentais para a criao de sistemas decomputao distribuda na Internet. Um servio web uma poro de cdigolocalizada num servidor web e que pode ser utilizada por uma aplicao qualquer. Oweb service pode produzir documentos ou procedimentos. Uma das caractersticascentrais dos web services serem baseados em padres abertos.

    WSDL - Web Service Description Language. Submetida W3C - o rgopadronizador da Internet - . A linguagem WSDL define regras baseadas em XMLpara descrever servios web.

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    8/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 4

    Captulo 2 - ASP.NET

    Introduo

    A Microsoft sabendo da dificuldade que os desenvolvedores tm para construir

    sites complexos para Web, resolveu criar uma nova plataforma de desenvolvimento. a que aparece o ASP.Net, uma soluo poderosa, produtiva, e fcil de usar quevai muito alm de pginas HTML convencionais.

    O ASP.Net uma nova verso do ASP (Active Server Pages), uma plataformaunificada de desenvolvimento da Web, que fornece os servios necessrios para osdesenvolvedores construrem conjuntos de aplicaes da Web atravs de um novomodelo de programao, a arquitetura de trs camadas.

    O ASP.Net vai revolucionar o desenvolvimento para a Web, pois a primeiraferramenta RAD (Rapid Application Design) para o desenvolvimento de aplicativosespecficos para a Web, por isso podemos afirmar que todo o ciclo dedesenvolvimento ser o mesmo de outras tecnologias como Visual Basic

    tradicional e Delphi.Os aplicativos ASP.Net rodam sob o Servidor Web da Microsoft IIS (InformationInternet Server) com algumas rotinas suplementares instaladas.

    Apesar do ASP.Net rodar somente no Servidor Web IIS da Microsoft, as pginasso acessveis em qualquer navegador, mesmo que no tenha sido desenvolvidopela Microsoft, e em qualquer Sistema Operacional, pois aplicao dependerapenas do Browser, ou seja, do navegador.

    Se repararmos o processo de evoluo para a criao de aplicativos para aWeb, vamos observar que o grande intuito desta nova tecnologia resolver osproblemas encontrados no ciclo de desenvolvimento das ferramentas atuais.

    Para quem deseja aplicar esta nova tecnologia, importante ressaltar que no

    necessrio entender de outras tecnologias como JavaScript, HTML, VbScript, oumesmo o ASP tradicional, pois o ASP.Net tem como base a inspirao emferramentas RAD como VB Tradicional e o Delphi, por isso podemos afirmar que oenfoque o desenvolvimento de software. Isso tudo representa uma nova maneirade analisar o desenvolvimento de software para a Web.

    Do HTML ao ASP.NET

    Originalmente, os sites para a Web eram muito simples. Havia pginas somenteem HTML, por isso dizemos que eram aplicaes estticas. O que funcionava muitobem para alguns sites como Jornais, Exposio de Catlogos e MateriaisDidticos, dentre outros.

    O HTML evoluiu, j era possvel criar uma interatividade com o usurio, mas umcontedo dinmico ainda estava faltando. Ento o processamento de servidor foiintroduzido, surgindo da o modelo cliente/ servidor.

    A Internet trabalha no modelo cliente/servidor. Isto , dois computadores

    trabalham juntos, enviando as informaes de um lado para outro, para realizar umatarefa. Neste cenrio as informaes esto contidas no servidor, o cliente apenas faza solicitao daquilo que lhe conveniente.

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    9/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 5

    Quando o cliente envia uma solicitao de informaes ao computador servidor,este ento processa o pedido e retorna as informaes de solicitao em HTML.

    Esse paradigma o modelo de solicitao/resposta, e parteintegrante do modelo cliente/ servidor.

    Este modelo permite que o servidor retorne contedo dinmico ao cliente, comodados em banco de dados e o resultado de clculos.

    Este fluxo de trabalho o seguinte:1. O Cliente (Navegador Web) localiza o servidor da Web por URL (como

    www.globo.com).2. O Cliente solicita uma pgina (como cadastro.asp)3. O Servidor examina a solicitao e processa a sada codificada em HTML.4. O Cliente recebe o documento e o exibe.

    Neste cenrio, o servidor no tem a mnima idia do que o cliente esta fazendo,

    a menos que este faa outra solicitao.O ASP.Net trabalha em outro modo de comunicao entre clientes e servidoresWeb, que conhecido como modelo baseado em eventos. Isso quer dizerque o servidor espera algo acontecer no cliente. Quando ocorre, o Servidor tomamedidas para realizar alguma funcionalidade.

    Ento podemos afirmar que o Servidor vai responder a suas aes. Se o clienteclica em uma imagem ou seleciona um CheckBox, o Servidor exerce uma ao.

    O ASP.Net funciona assim detecta aes e as responde. Para isso o ASP.Netconta com um processamento inteligente do lado cliente para simular um modelobaseado em eventos.

    Voc deve estar questionando ento, como o ASP.Net sabe o que est

    acontecendo no cliente j que um script do lado cliente no pode interagir com ocdigo do lado servidor, e sabendo tambm que a nica maneira de o clientecomunicar-se como servidor durante uma solicitao.

    Bem, o ASP.Net inteligentemente limita esse problema. Ao utilizar o script dolado cliente, o ASP.Net fornece informaes sobre o que o cliente est fazendo assolicitaes, como se o ASP.Net coloca-se alguns espies no cliente, de modo queo servidor seja informado sobre tudo que est acontecendo do lado do cliente.

    Os espies do ASP.Net so os scripts do lado do cliente, que no podeminteragir com o lado servidor, mas podem transmitir mensagens por meio depostagens para o servidor.

    Portanto, o ASP.Net faz essa unio com o servidor e o cliente.Este conceito que o ASP.Net implementa facilita a vida o programador, que no

    precisa mais se concentrar em direcionar solicitaes e respostas, o programadorfica livre para se concentrar na construo da lgica.

    Voc pode reagir s ocorrncias do usurio imediatamente em vez de esperarque os formulrios sejam submetidos. E pode conhecer a estrutura da interface como usurio e como lidar com elas antecipadamente.

    O ASP.Net realmente facilita a vida dos desenvolvedores.

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    10/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 6

    Como o ASP.Net Funciona

    Assim como o VB e o Delphi, o desenvolvimento feito sobre formulrios(pginas .aspx + fonte em linguagem de alto nvel).

    Um formulrio esta associado a um arquivo com a extenso .aspx e tambm aum fonte de linguagem de alto-nvel, como VB.Net, C#, J#, entre outras.

    Sobre os formulrios so adicionados componentes que tm propriedades,mtodos e eventos. Por isso podemos afirmar que esta tecnologia orientada aobjetos.

    Este modelo de fcil entendimento e muito mais produtivo.O ASP.Net tambm mais rpido que os scripts como o JavaScript, e

    tecnologias como o antigo ASP.Isso ocorre porque seus programas so compilados, o que d mais velocidade e

    segurana de cdigo-fonte.Entretanto devemos observar que, em vez de compilar em algo que o

    computador entenda, o desenvolvedor o compila em uma linguagem intermediaria,chamada Microsoft Intermediate Language ( MSIL ).As pginas ASP.Net so compiladas em MSIL. Ao compilar em MSIL, suas

    aplicaes criam algo chamado metadados. Que so as informaes descritassobre o seu aplicativo.

    Ento, quando voc quiser executar seu programa, a CLR (Common LanguageRuntime) assume e compila o cdigo mais uma vez na linguagem nativa docomputador.

    Dessa maneira, a MSIL pode se comunicar com qualquer tipo de computador. ACLR pode falar muitas linguagens de computador diferentes, como C#, VB.Net, J#,Cobol.Net, Pascal.Net, entre outras, alm de fazer toda a compilao.

    Acompanhe na figura 2.1 o esboo da estrutura tradicional de um aplicativoversus a .Net FrameWork.

    Figura 2.1 Modelo Tradicional versus Modelo .Net FrameWork.

    Modelo Tradicional

    CDIGO APLICATIVO

    Compila em cdigode mquina

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    11/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 7

    Modelo .Net FrameWork

    A CLR utiliza os metadados para descobrir como executar o aplicativo.Com metadados no h nenhuma necessidade de requerer informaes sobre

    os aplicativos a serem armazenados em um registro, como era realizado no modelotradicional, porque todas as informaes necessrias so armazenadas com osarquivos do aplicativo; assim, qualquer alterao que voc fizer ser colocada emefeito automaticamente. Imagine instalar um novo aplicativo somente copiandoalguns arquivos!

    O cdigo que trabalha com CLR chamado cdigo gerenciado. Esse nome

    dado ao CLR pelo fato dele gerenciar sua execuo e fornecer benefcios (comogerenciamento de recursos, tratamento de erros, recursos de segurana, controle deverso, etc) sem o programador ter que constru-lo manualmente. O cdigo que executado fora da CLR conhecido como cdigo no-gerenciado.

    Criando Pginas ASP.Net

    As pginas ASP.Net so simplesmente texto puro, como arquivos em HTML.

    Para que as pginas possam ser executadas e mostradas, voc precisa ter instaladoo .Net FrameWork e um servidor Web(IIS).

    As pginas ASP.Net tm extenso .aspx, ento quaisquer arquivos que vocquer que o servidor interprete como um aplicativo ASP.Net deve terminar em .aspx,como index.aspx.

    Mas antes de apresentar um aplicativo na maneira ASP.Net, vamos mostrar acriao e execuo de um programa em C# na maneira convencional.

    CDIGOMSIL commetadados

    CLS

    Compila emcdigo de

    mquina

    Aplicativo

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    12/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 8

    Maneira Convencional

    Vamos apresentar um exemplo de um programa no interativo, que apenasescreve as palavras MEU PRIMEIRO EXEMPLO!, na tela do monitor.

    Existem no mercado muitas ferramentas de desenvolvimento para os aplicativos

    .Net, como Microsoft Visual Studio.Net e Macromedia Dreamweaver MX. Nestecurso utilizaremos o famoso Bloco de Notas para desenvolver nossos aplicativos.Teremos com certeza mais trabalho em desenvolver nossos aplicativos com o blocode notas, mas teremos a vantagem de no ficaremos presos a uma ferramenta.

    Siga os seguintes passos para a criao e execuo deste exemplo:1. Abra o bloco de notas e digite as linhas abaixo:

    2. Crie um diretrio (digamos com o nome: CursoNet) e nela grave o arquivodigitado acima com o nome: Primeiro.cs.

    3. Abra a janela de comando (janela do DOS) e atravs o comando cd dirige-separa o diretrio criado anteriormente onde voc salvou o arquivo.

    4. Para compilar o programa, digite:

    csc Primeiro.cs

    Ser criado um arquivo: Primeiro.exe5. Para disparar o programa basta digitar:

    Primeiro

    6. O programa comea a ser executado, o momento chamado de init.7. feito o render(desenho na tela do monitor) do que o programa previa que

    deveria ser renderizado.

    A figura 2.2 apresenta os passos seguidos.

    using System;

    class Primeiro {

    public static void Main( ) {

    // Parte renderizvelConsole.WriteLine(VarMensagem);

    }

    // Parte programticastatic String VarMensagem = Meu Primeiro Exemplo!;

    }

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    13/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 9

    Figura 2.2 acompanhe a compilao e execuo do programa.

    Maneira ASP.NetSe voc j instalou o .Net FrameWork SDK 1.0 em seu computador, ento voc

    est pronto para criar seu primeiro programa na tecnologia ASP.Net.Este nosso primeiro exemplo tem o mesmo objetivo do programa desenvolvido

    para a maneira convencional, o programa exemplo vai renderizar na tela do monitorde um cliente a mensagem - Meu Primeiro Exemplo! que vem de um computadorservidor.

    Para o exemplo usaremos apenas um nico computador. Ou seja, o computadorservidor e o computador cliente sero o mesmo. Para que o cliente ento possaacessar o servidor (virtualmente falando), usaremos o endereo: http://127.0.0.1no browser, ou tambm o endereo http://localhost.

    Basta acompanhar os passos abaixo para que o exemplo funcione:

    1. Abra o bloco de notas e digite as linhas de cdigo do programa.

    private String VarMensagem = Meu Primeiro Exemplo!;public void Page_Load(Object sender, EventArgs ea) {

    saida.Text = VarMensagem;}

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    14/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 10

    2. Vamos criar um diretrio com o nome CursoNet, sob o path de diretrios j

    existentes(so diretrios ligadas ao IIS), onde o padro :c:\Inetpub\Wwwroot, e salve o arquivo digitado acima com o nomede: primeiro.aspx.

    3. Abrir o browser e colocar o seguinte endereo :

    http://127.0.0.1/cursonet/primeiro.aspx

    ou

    http://localhost/cursonet/primeiro.aspx

    Este passo acontece no cliente!

    4. O programa compilado automaticamente por um compilador Just InTime e depois executado. Ento o programa disparadoautomaticamente e comea a ser executado. Este momento chamado deinit.

    Este passo acontece no servidor!

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    15/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 11

    5. realizado o render (desenho na tela do monitor do cliente) do que oprograma previa que deveria ser renderizado.

    Este passo acontece no servidor e no cliente!

    Mantendo o Estado de uma Pgina ASP.Net

    A manuteno de estado dos componentes quando existe um PostBack (umpost para a prpria pgina) automtica.

    Isso possvel porque quando uma determinada pgina .aspx chamada pelaprimeira vez criado na memria do servidor um pool de algumas instancias daclasse que tem o nome da pgina e que herdeira de uma classe Page.

    Novas solicitaes daquela mesma pgina, seja ela pelo mesmo cliente ou por

    outro, no criaro, ao menos que o arquivo sofra alguma mudana, novas instanciasdesse objeto.O que criado junto com a primeira solicitao daquela pgina um objeto da

    classe ViewState, que por sua vez cria uma referencia quele dado objeto herdeirode Page.

    Quando uma pgina reenviada para o servidor comea um novo ciclochamado de ROUNDTRIP que consegue localizar aquela sua instancia de ViewStatee remonta um objeto tipo Page idntico ao anterior.

    Este esquema desenvolvido faz parecer como se cliente tivesse um objeto tipoPage permanentemente dele, o tempo todo conectado, o que no verdade.

    Isso faz com que os componentes utilizados na aplicao consigam manter

    automaticamente os seus valores.A informao de estado em si pode ser armazenada em diversos locais. O mais

    comum na memria do servidor, como o Asp tradicional faz hoje, mas podemostambm armazenar informaes de estado em um servidor de estado, no SQLServer ou at mesmo escrevendo cdigo para exercer tal funcionalidade.

    ViewState

    O ViewState descreve o aspecto de um objeto em um dado momento.Dizemos que um aplicativo que monitora essas informaes mantm (ou

    monitora) o estado.Os formulrios Web em HTML no tm esse poder, isso porque a Web uma

    mdia sem informaes de estado.O ASP.Net monitora automaticamente o ViewState para voc. Isso pode ser

    feito porque o ASP.Net gera sada de campos de formulrios ocultos em HTMLsempre que voc instruir um formulrio a executar no servidor.

    Para que isto ocorra preciso que o desenvolvedor instrua o formulrio e seus

    componentes a executar no servidor, portanto devemos incluir a clausula runat emcada um destes componentes:

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    16/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 12

    Acompanhe a sintaxe:

    Por exemplo, veja a linha a seguir escrita no servidor:

    Isso envia o cdigo a seguir em HTML para o navegador:

    O campo oculto do formulrio com o nome -_VIEWSTATE, possui um valor emuma string de caracteres, que a forma que o ASP.Net utiliza para reconhecer cadacontrole. Quando o formulrio enviado, o ASP.Net recupera esse valorautomaticamente e utiliza para preencher as informaes do formulrio novamente.Este esquema o ASP.Net utiliza para escrever lembretes para si prprio nas pginasque so enviadas para o cliente.

    Na figura 2.3 podemos acompanhar o fluxograma do ASP.Net, desde o instanteda solicitao ao servidor at exibio do cdigo para o cliente.

    Figura 2.3 - Fluxograma do ASP.Net, da solicitao exibio.

    runat=server

    CLIENTE

    SERVIDORSOLICITA O

    PRIMEIRA VEZ?

    COMPILA

    TRATA DE EVENTOS

    EXECUTA O CDIGO

    TRADUZ PARA HTML

    Sim

    No

    RETORNA HTMLPARA EXIBIO

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    17/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 13

    Quase todo o HTML da pgina gerado em tempo de execuo peloscomponentes. Por isso o componente gera HTML conforme o seu estado e onavegador usado naqueles instantes. Se necessrio o componente gera JavaScript. uma maneira de os componentes funcionarem independentes do navegador.

    Em termos de desenvolvimento de ASP.Net, a CLR d ao programador muitomenos com que se preocupar. Ele gerencia a memria e oferece aos aplicativosASP.Net muito mais desempenho e estabilidade. Com o melhor isolamento de falhasno mais necessrio a pratica de reinicializar o servidor de Web IIS ou qualqueroutro servidor Web, se a aplicao cair. Por isso podemos dizer que o ASP.Net muito mais estvel e eficiente que os mtodos anteriores de desenvolvimento para aWeb.

    Importando Espaos de Nome

    Cada espao de nome na .Net FrameWork essencialmente uma coleo debibliotecas. O ASP.Net possui suas prprias bibliotecas, mas, s vezes, esseconjunto no suficiente. Portanto voc pode desenvolver suas prprias bibliotecas,o que j de costume na programao. Voc pode acessar suas bibliotecasadicionais utilizando a palavra-chave Import.

    Acompanhe um exemplo:

    Estas linhas importam todas as classes dos namespaces descritos acima. Oespao de nome System.Data.SqlClient importa por exemplo, os objetosSqlConnection, SqlCommand, SqlDataReader e SqlDataAdapter.

    Este recurso facilita bastante para o desenvolvedor chamar seus objetos emtodos no aplicativo. apenas uma maneira mais fcil e rpida de fazer isso.

    Existe ainda uma outra maneira de se fazer isso, utilizando a seguinte sintaxe:

    Dim Conn As System.Data.SqlClient.SqlConenction

    Dim Cultura As System.Globalization.CultureInfo

    DICA:

    Importar um espao de nome, porm, no importa os espaosde nome abaixo dele. Somente as classes que pertencem a essa

    interface so importadas.

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    18/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 14

    Objeto SESSION

    Na primeira solicitao de um determinado cliente ao aplicativo ASP.Net, criado um objeto do tipo Dictionary chamado Session. Nele podemos guardarqualquer valor com strings e nmeros que podero ser lidos em qualquer pgina daaplicao.

    Em cada objeto tipo ViewState do cliente existe um pointer para ele.Para fixar melhor ento, podemos dizer que um cliente vai ter um objeto Session

    e vrios objetos do tipo ViewState.Quando uma pgina chamada pela primeira vez disparado o evento

    OnStarSession. Na pasta da aplicao podemos adicionar um arquivo chamadoglobal.asax em que possvel programar o mtodo Session_OnStart que serexecutado quando ocorrer o evento. Podemos ento criar variveis de sesso noobjeto Session, que podero ser lidas em todas as pginas. Este recurso muitoutilizado para contar o numero de usurios conectados no site por exemplo.

    Portanto, para tornar uma varivel acessvel em outras pginas da aplicao,devemos desenvolvervariveis de sesso usando aquele objeto Session.

    Acompanhe o exemplo abaixo:


    public Sub MetodoEnviar(Obj As Object, ea As EventArgs)Dim VarTemp As StringVarTemp = entrada.TextSession.Add("VarSessao", VarTemp)saida.Text = Convert.ToString(Session.Item("VarSessao"))

    End Sub

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    19/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 15

    Vantagens Adicionais

    Alm de aumentar a produtividade no desenvolvimento, o ASP.Net traz diversosnovos recursos que os desenvolvedores iro apreciar como novidades para mantersesses, configurar o Servidor atravs de arquivos xml, gerenciar idiomas, criarWebServices e manter a segurana do cdigo fonte atravs de compilao.

    Vamos ver com mais detalhes:9 Flexibilidade para manter estado do aplicativo, pois evita o uso de variveis

    de sesses, mantendo automaticamente os seus valores.9 A configurao do aplicativo feita atravs de arquivos XML. Isto significa

    que ela fcil de alterar e no exige a interferncia do administrador doservidor.

    9 Facilidade em utilizar diversas culturas diferentes. Trocar a cultura usada emseu aplicativo implica em mudar uma nica linha no arquivo XML deconfigurao. Pode tambm ser tratada no cdigo, em tempo de execuo.

    9 Possui um mesmo modelo de projeto, podendo conter pginas aspx etambm WebServices.

    9 Os aplicativos em ASP.Net so compilados ganhando em velocidade deexecuo e possui a impossibilidade de pessoas no autorizadasenxergarem o seu cdigo-fonte.

    O ASP.Net um grande passo frente no desenvolvimento de aplicativos querodam em servidores Web.

    Os ganhos de produtividade e a facilidade de desenvolvimento so inmerasvezes maiores que algumas tecnologias utilizadas, como ASP, PHP, CGI,JavaScript, entre outras.

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    20/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 16

    Captulo 3 Variveis

    Podemos dizer que uma varivel um espao alocado na memria RAM paraser utilizada por um ou mais processos que necessitam de armazenar ou manipularalguma informao. Ou ainda, variveis representam locais de armazenamento.

    Essas variveis so reconhecidas por um nome que lhe atribudo.

    As variveis devem ser declaradas, assim ter um tipo associado a ela quedeterminar que valores podem ser armazenados e manipulados.O contedo de uma varivel pode mudar no decorrer do programa.Voc pode dar o nome que quiser a uma varivel, mas existem algumas

    restries como: O nome deve conter letras, nmeros, ou caracteres de sublinhado( _ ); Este nome deve conter no mximo 255 caracteres.

    Como definido no podemos atribuir qualquer valor a uma varivel, sem antesdefini-la.

    Veja abaixo a sintaxe para declarao de variveis em C# e VB.NET:

    Se estas variveis forem declaradas dentro de um procedimento ou bloco,podero ser acessveis apenas dentro deste procedimento ou bloco.

    Na figura 3.1, o programa feito em C# tem um procedimento chamado deTestaVariavel( ), onde declarado uma varivel com o nome de VarEscreve.

    Esta varivel estar acessvel somente no procedimento em que foi declarada,neste exemplo, no procedimento TesteVariavel( ). Portanto se tentar solicitar esta

    varivel fora do procedimento acontecer um erro.

    importante ressaltar que voc adote um padro para a declarao

    destas variveis, para facilitar possveis reparos no sistemadesenvolvido.

    Para C#: TIPONomeDaVariavel

    Exemplo: stringRecebe_Indice;

    Para VB.Net: DimNomeDaVariavelASTIPO

    Exemplo: DimRecebe_ndiceASInteger;

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    21/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 17

    Figura 3.1 programa em C#.

    Na figura 3.2, um programa em Visual Basic.Net , tem um exemplo de umavarivel declarada com o nome VarEscreve em um bloco de execuo.

    Esta varivel ser acessvel apenas neste bloco de execuo, qualquerchamada a esta varivel fora, vai ocorrer um erro.

    Figura 3.2 - programa em Visual Basic.net

    Dica: utilize nomes que sejam adequadamente descritivos. No utilizenomes de variveis temporrias, nem reutilize nomes isso vai tomar o

    cdigo confuso!

    using System;

    public class BlocoTeste{

    public void TestaVariavel( ){

    string VarEscreve; // ser acessvel apenas neste procedimentoVarEscreve = "Teste de varivel";Console.WriteLine(VarEscreve);

    }

    public static void Main( ) {BlocoTeste objBloco = new BlocoTeste( );objBloco.TestaVariavel( );

    }}

    Imports System

    Public Class BlocoTestePublic Shared Sub Main()

    Dim K AS IntegerFor K = 1 To 10

    Dim VarEscreve E AS Integer ser acessvel apenas neste blocoIf (k Mod 2) = 0 Then

    VarEscreve = kConsole.WriteLine(VarEscreve)

    End IfNext K

    End SubEnd Class

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    22/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 18

    3.1 Variveis na linguagem C#.

    Na linguagem C# as variveis esto agrupadas em algumas categorias como: Static: Existe apenas uma nica cpia desta varivel para todas as

    instancias de uma classe. Uma varivel static comea a existir quandoum programa comea a executar, e deixa de existir quando o programa

    terminar. Instance: existe uma cpia para cada instancia de uma classe. Uma

    varivel Instance comea a existir quando uma instancia daquele tipo criado, e deixa de existir quando no houver nenhuma referncia quelainstancia ou quando e mtodo Finalize executado.

    Array: uma matriz que criada em tempo de execuo.

    Tipos

    Podemos armazenar muitos tipos de informaes diferentes dentro de uma

    varivel, como nmeros, datas, e strings.Nesta linguagem, seus tipos podem ter dois tipos:

    Por Valor: os valores so gerenciados diretamente na memria. Por Referencia: os valores so passados por meio de um ponteiro.

    Inteiros (por valor)

    Este tipo um numero inteiro sem frao ou parte decimal. Por exemplo, onmero 1058 um numero inteiro.

    O tipo inteiro subdividido em alguns subtipos. Veja a figura 3.1.1 que mostraestes tipos de inteiro.

    Figura 3.1.1 tipos de inteiro.

    Tipo Descrio

    byte Inteiro de 1 bit sem sinal (0 a 255)

    sbyte Inteiro com sinal de 8 bits (-127 a 128)

    int Inteiro de 32 bits com sinal (-2.147.483.648 a 2.147.483.147)

    uint Inteiro de 32 bits sem sinal (0 a 4.294.967.295)

    long Inteiro com sinal de 64 bits (-9.223.372.036.854.775.808 a9.223.372.036.854.775.807)

    ulong Inteiro sem sinal de 64 bits (0 a 18.446.744.073.709.551.615)

    short Inteiro com sinal de 16 bits (-32.768 a 32.767)

    ushort Inteiro sem sinal de 16 bits (0 a 65.535)

    Exemplos:

    byteVarIdade = 25;

    int VarValor= 1.542;longVarValor= 5.684.548.520;shortVarInd = 25.620;

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    23/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 19

    Lgicos (por valor)

    Esses tipos so usados para comparao. Portanto esses tipos s podemassumir os valores verdadeiro ou falso.

    Tipo Descrio

    bool true ou false

    Exemplos:

    bool VarDesativado = false;bool VarCondicao = true;

    Caracteres (por valor)

    Este tipo armazenado em 16 bits, representa um caractere de uma string.Essas variveis so armazenadas no padro Unicode.

    Tipo Descrio

    char Um nico caractere Unicode de 16 bits.

    Exemplos:

    CharVarChar = a; Representa um caractere literal.

    CharVarChar = \x0025; Representa um caractere hexadecimal.

    CharVarChar = \u0025; Representa um caractere Unicode.

    CharVarChar = (char)25;

    Retorna o caractere correspondente na Tabela ASCII.

    Figura 3.1.2 - neste exemplo retornado o valor correspondente ao caractere 25da tabela ASCII.

    using System;public class CharTeste{

    public static void Main(){

    char VarTeste = (char)25;Console.WriteLine(VarTeste);

    }}

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    24/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 20

    Ponto Flutuante (por valor)

    As variveis com este tipo possuem nmeros com ponto flutuante utilizando opadro IEEE de 4 a 8 bytes.

    Tipo Descrio

    double Ponto flutuante binrio de 8 bytes ( 1.5 x 10-45

    a 1.7 x 10308

    )Este tipo tem uma preciso de 15 casas decimais.

    floatPonto flutuante binrio de 4 bytes ( 1.5 x 10 -45 a 3.4 x 1038 )Este tipo tem uma preciso de 7 casas decimais.

    As operaes com este tipo no geram erros, mas h alguns ressaltos quedevemos saber:

    Se o valor retornado para a varivel conter um nmero muitopequeno, este valor torna-se zero.

    Uma diviso por zero no causa um erro, mas produzido um valorinfinito. Operaes de ponto flutuante devolvem NaN (Not a Number) para

    sinalizar que aquele resultado da operao indefinido. Portanto se umdos operadores for NaN o resultado retornado ser NaN.

    Exemplos:

    f loat VarIndice = 3.1356F;

    double VarCorrecao = 5.12D;

    Decimal (por valor)

    O tipo decimal representa com mais preciso nmeros no inteiros e com umvalor muito alto.

    Tipo Descrio

    decimalPonto flutuante decimal de 128 bytes ( 1.5 x 10 -45 a 1.7 x 10308 )

    Este tipo tem uma preciso de 28 casas decimais.

    Exemplos:

    decimal VarIndice = 560.5m;

    decimal VarCorrecao = 545.2m;

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    25/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 21

    String (por referncia)

    Este tipo pode conter at 1 gigabyte de caractere e alocado dinamicamente,por isso dizemos que este tipo por referncia.

    Tipo Descriostring Unicode com at 1 gigabyte de caractere.

    Exemplos:

    string VarNome = Claudio Junior;

    string VarEmail = [email protected];

    string VarConcatenar = VarNome + VarEMail;

    As strings so compostas por caracteres e podem conter literais caracteres.Veja a representao dos literais strings:

    Tipo Descrio

    \ Apstrofo

    \ Aspas

    \\ Barra invertida

    \0 Zero binrio ou nulo\a Alerta

    \b Retrocesso

    \f Avano de pgina

    \n Salto de linha

    \r Retorno de carro

    \t Tabulao horizontal

    \v Tabulao vertical

    \uNNNN NNNN o cdigo em hexadecimal

    Uma representao importante das string a arroba ( @ ), utilizada paraespecificar nomes de arquivos e pastas.

    Exemplos:

    string VarLinha = Pula Linha \n;

    string VarCaminho = @c:\temp\oledb.txt;

    Neste caso com o uso da arroba ( @ ) a representao doscaracteres de barra invertida ( \ ) no feita dentro da string.

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    26/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 22

    Object (por referncia)

    Este tipo muito utilizado por programadores, um termo geral para umavarivel que no especificado como outro tipo de dados, por isso torna-se um tipouniversal.

    Em certas situaes torna-se indispensvel atribuir e instanciar um objeto.

    Tipo Descrio

    object Atribuir a um objeto.

    Exemplos:

    Object VarNome = Rubens Barrichello; Este objeto recebe o valor de uma string.

    Object VarIdade = 29; Este objeto recebe o valor de um numero;

    Object VarAtivar = true; Este objeto recebe um valor lgico.

    Converso de Valores

    Converter um tipo de dado em nmero ou em literal comum em situaes deprogramao. Quando esta aplicao for destinada a Web com intervenes deinternautas, esse recurso utilizado com mais freqncia ainda. comum ointernauta testar a aplicao para ter certeza que o desenvolvedor se preocupoucom as devidas converses de valores.

    Devemos considerar alguns aspectos para a converso de nmeros: Como existem diversos tipos de nmeros, inteiros, ponto flutuante ou

    decimal, os valores so convertidos sempre para o tipo de maiorfaixa de valores. Por exemplo, o tipo long convertido para o pontoflutuante, mais importante ressaltar que o contrario causa um erro.

    Os tipos de menor faixa so convertidos para os de maior faixa. Porexemplo, o tipo int pode ser convertido para: long, float, double oudecimal.

    A converso dos tipos de ponto flutuante(float, double) para decimalcausa erro.

    A converso entre os tipos com sinal e sem sinal de valores inteiroscom o mesmo tamanho causa erro. Por exemplo, entre o tipo int eunit.

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    27/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 23

    Caso precise forar uma converso mesmo que haja perda de informaes, alinguagem disponibiliza um operador com este recurso.

    Exemplos:

    int VarValor = (int)8544555L; Neste caso a varivel inteira vai receber o quanto poder

    suportar do tipo long.

    long VarValor = (long)29.145; Neste caso a varivel inteira do tipo long suportar o

    quanto for possvel do nmero no inteiro.

    Em alguns casos os tipos de converso no precisam ser especificados pelodesenvolvedor, essa converso feita automaticamente.

    Figura 3.1.3 - os tipos de converso automtica:

    Tipo Converte em

    sbyte short, int, long, float, double, decimal

    byte short, ushort, int, uint, long, ulong, float, double, decimal

    short int, long, float, double, decimal

    ushort int, uint, long, ulong, float, double, decimal

    int long, float, double, decimal

    uint long, ulong, float, double, decimal

    long float, double, decimal

    ulong long, double, decimal

    char ushort, int, uint, long, ulong, float, double, decimal

    float double

    Exemplos:

    int VarInteiro = 32450;

    long VarLong = VarInteiro;

    f loat VarFloat = VarLong;

    double VarDouble = VarFloat;

    decimal VarDecimal = VarLong;

    byte VarByte = (byte)VarInteiro;int VarInteiro = ( int)31.245F;

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    28/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 24

    Checked e Unchecked

    Toda converso pode causar erro , mas existe uma forma de forar a conversosem que cause um erro. Para isso so utilizados o checked e o unchecked.

    Figura 3.1.4 Exemplo do checked e do unchecked.

    Veja a sada deste programa:

    using System;

    public class Checar{

    public static void Main(){

    int X = 2147483647;int Y = 2;int Produto = 0;unchecked

    { Produto = X * Y;Console.WriteLine("Resultado da Converso: "+Produto); // retorna -2

    }checked{

    try{

    Produto = X * Y;Console.WriteLine("Resultado da Converso: "+Produto);

    // Causa erro na compilao

    }catch(OverflowException e){

    Console.WriteLine("Mensagem de Erro: "+e.ToString());}

    }

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    29/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 25

    Operadores

    Operadores so smbolos utilizados para efetuar alguma ao.

    Veja a tabela de operadores que o C# suporta.

    Tipo Operador

    aritmticos + - * / %

    lgicos & | ^ ! ~ && ||

    concatenao +

    Incremento e decremento ++ --

    deslocamento >

    relacional < > =

    Igualdade == !=

    atribuio = *= /= %= += = &= ^=

    condicional ? :

    criao de objetos new

    primrios typeof sizeof is checked unchecked

    Tipos definidos pelo programador

    Uma grande maioria das linguagens de programao permite ao desenvolvedordefinir seus prprios tipos, que podem ser usados em qualquer situao quenormalmente um outro tipo poderia ser utilizado.

    Enum (por valor)

    O tipo enum usado para declarar uma enumerao, um tipo distinto queconsiste em um jogo de constantes nomeadas chamadas a lista de enumerados.

    Figura 3.1.5 exemplo de um tipo enum, definido pelo desenvolvedor.

    using System;public class EnumTest{

    enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};

    public static void Main(){

    int x = (int) Days.Sun;int y = (int) Days.Fri;

    Console.WriteLine("Sun = {0}", x);Console.WriteLine("Fri = {0}", y);

    }}

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    30/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 26

    Veja a sada do programa da figura 3.1.5.

    Struct (por valor)

    Permite declarar tipos que contem diversos valores identificados pelo nome.

    Um tipo de struct um tipo de valor que pode conter construtores, constantes,campos, mtodos, propriedades, dentre outros. A declarao de um struct leva aforma seguinte:

    Figura 3.1.6 exemplo de um tipo struct.

    AtributostructIdentificadorDoTipo

    using System;public struct Point

    { public int x, y;

    public Point(int x, int y){

    this.x = x;this.y = y;

    }}class MainClass{

    public static void Main(){// Declare an object:Point myPoint;

    // Initialize:myPoint.x = 10;myPoint.y = 20;

    // Display results:Console.WriteLine("My Point:");

    Console.WriteLine("x = {0}, y = {1}", myPoint.x, myPoint.y);}}

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    31/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 27

    Veja a sada do programa da figura 3.1.6.

    New

    Independente do tipo todas as variveis podem ser inicializadas com o operador

    new. Caso sejam do tipo class, struct ou array, este operador obrigatrio.Exemplos do operadornew:

    Para tipos primitivos:

    Para classes:

    Para structs:

    No exemplo a seguir temos a criao de um tipo definido pelo desenvolvedor, otipo struct, e a criao de um objeto de classe.

    Tipo NomeVariavel= new Tipo( );

    Int Valor= new int( );

    NomeClasse NomeInstancia = new NomeClasse( );ClasseAluno ObjAluno = new ClasseAluno( );

    NomeStruct InstanciaTipo = new NomeStruct( );

    RegistroAluno RegAluno = new RegistroAluno( );

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    32/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 28

    using System;class NewTest{

    struct MyStruct{

    public int x;public int y;public MyStruct (int x, int y){

    this.x = x;this.y = y;

    }}class MyClass{

    public string name;public int id;

    public MyClass (){}

    public MyClass (int id, string name){

    this.id = id;this.name = name;

    }}public static void Main(){

    // Criao de objetos usando o construtor sem valores.MyStruct Location1 = new MyStruct();MyClass Employee1 = new MyClass();

    // Valores de sada:Console.WriteLine("Valores Default:");Console.WriteLine(" Membros do Struct: {0}, {1}",

    Location1.x, Location1.y);Console.WriteLine(" Membros da Classe: {0}, {1}",

    Employee1.name, Employee1.id);

    // Criando objetos usando construtores parametrizados:MyStruct Location2 = new MyStruct(10, 20);MyClass Employee2 = new MyClass(1234, "John Martin Smith");

    // Valores de sada:Console.WriteLine("Valores Inicializados pelo construtor:");Console.WriteLine(" Struct members: {0}, {1}",

    Location2.x, Location2.y);Console.WriteLine(" Class members: {0}, {1}",

    Employee2.name, Employee2.id);}

    }

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    33/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 29

    Arrays

    Um tipo array uma matriz de valores do mesmo tipo, que criada em tempode execuo, podendo ser acessada por meio de um ndice.

    A declarao do array sempre faz o uso de um colchete( [ ] ) depois do tipo davarivel. O uso da instruo new sempre deve ser utilizado, pois obrigatrio.

    O tipo array pode ter diversas dimenses, o tamanho desta definido pelodesenvolvedor, mas devemos saber que o primeiro ndice sempre zero.

    No tipo array devemos sempre inicializar seus elementos, pois obrigatriotambm.

    Veja abaixo a forma de sintaxe para a declarao de arrays.

    Veja abaixo a forma de sintaxe para a declarao de um array de duas ou maisdimenses.

    Veja abaixo a forma de sintaxe para a declarao de uma matriz de arrays.

    Veja abaixo a forma de sintaxe para a inicializao de arrays.

    TIPO [ ] NomeDoArray = new TIPO [ tamanho do array];

    float [ ] ValorIndice = new float [ 10 ];

    string [ ] ElementoVetor = new string [ 10 ];

    TIPO [ , ] NomeDoArray = new TIPO [ tamanho do array, tamanho do array ];

    float [ , ] ValorIndice = new float [ 10 , 10 ];

    string [ , , ] ElementoVetor = new string [ 10 , 10 , 10 ];

    TIPO [ ] [ ] NomeDoArray = new TIPO [ tamanho do array] [tamanho do array ];

    float [ ] [ ] ValorIndice = new float [ 10 ] [ 10 ];

    string [ ] [ ] [ ] ElementoVetor = new string [ 10 ] [ 10 ] [ 10 ];

    TIPO [ ] NomeDoArray = new TIPO [ tamanho do array] { valores };

    float [ ] ValorIndice = new float [ 5 ] { 1.25, 2, 3.23, 1.32, 5 };

    string [ , ] ElementoVetor = new string[3, 3] {{ab, ac, bc} , {ab, ac, bc}};

    int [ ] [ ] MatrizDeInteiro = new int [ 2 ] [ ];

    MatrizDeInteiro[ 0 ] =new int [ 5 ] {1,3,5,7,9};MatrizDeInteiro[ 1 ] =new int [ 4 ] {2,4,6,8};

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    34/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 30

    Exemplos e Exerccios:

    Exemplo 01 comparao.

    Veja a sada do programa acima:

    using System;public class Comparacao{

    public static void Main( ){

    // Exemplos com nmeros.Console.Write("10 == 10: ");Console.WriteLine(10 == 10);Console.Write("10 != 10: ");Console.WriteLine(10 != 10);

    // Exemplos com objetos.object objeto1 = 10;object objeto2 = 10;Console.Write("objeto1 == objeto2: ");Console.WriteLine(objeto1 == objeto2);

    // Exemplos com strings.string VarA = "Unifenas";string VarB = "Unifenas";string VarC = String.Copy(VarA);Console.Write("VarA == VarB: ");Console.WriteLine(VarA == VarB);Console.Write("(object)VarA == (object)VarB: ");Console.WriteLine((object)VarA == (object)VarB);Console.Write("(object)VarA == (object)VarC: ");Console.WriteLine((object)VarA == (object)VarC);

    Console.Write(" VarA + VarB : "); // Concatenando stringsConsole.WriteLine(VarA + VarB);

    }}

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    35/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 31

    Exemplo 2 Operaes matemticas.

    Veja a sada do programa acima:

    using System;public class OperacoesMat

    { public static void Main( ){

    int Valor1; // forma normalint Valor2 = new int ( ); // forma alternativaValor1=Valor2=10;

    Console.WriteLine(" Valor1 = Valor2 = 10: ");Console.WriteLine(" Valor1: "+Valor1);Console.WriteLine(" ++Valor1: "+ ++Valor1);Console.WriteLine(" Valor2- - : "+Valor2--);Console.WriteLine(" Valor1 + 15 : "+(Valor1 + 15));Console.WriteLine(" Valor2 - 5 : "+(Valor2 - 5));

    }}

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    36/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 32

    Exemplo 3 operadores lgicos:

    Veja a sada do programa acima:

    using System;public class Logicos{

    public static void Main( ){bool VarA = true;bool VarB = !true;

    Console.Write(" VarA ? 'verdade' : 'falso' : ");Console.WriteLine(VarA ? "verdade" : "falso");

    Console.Write(" VarB ? 'verdade' : 'falso' : ");Console.WriteLine(VarB ? "verdade" : "falso");

    }}

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    37/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 33

    3.2 Variveis na linguagem Visual Basic.Net

    A linguagem Visual Basic.net tambm faz uso de variveis como toda linguagemde programao.

    O uso de variveis nos aplicativos desenvolvidos muito comum,principalmente para armazenamentos temporrios de informaes. Para a Web a

    utilizao de variveis inevitvel.

    Tipos

    Toda varivel deve ter um tipo que define qual o tipo de informaes ou dadoslhe convm. Para isso, toda varivel tem um conjunto de regras que determina o seuuso.

    Nesta linguagem os tipos so divididos em cinco categorias diferentes: inteiros,nmeros de ponto flutuante, booleanas, datas e strings.

    Inteiros ( por valor )

    Um nmero inteiro sem frao ou parte decimal dito como inteiro.Existem alguns subtipos de inteiros, de modo que voc possa assegurar um

    tamanho de memria adequado para um determinado dado.A figura 3.2.1 mostra os tipos de inteiros que a linguagem suporta.

    Figura 3.2.1 Subtipos de inteiros.

    Tipo Descrio

    Byte Inteiro de 1 byte sem sinal (0 a 255) (tambm conhecido comoSystem.Int)

    Short Inteiro de 2 bytes com sinal ( -32.678 a 32.677) (tambm conhecidocomo System.Int16)

    Integer Inteiro de 4 bytes com sinal ( -2.147.483.648 a 2.147.483.647)

    (tambm conhecido como System.Int32)

    LongInteiro de 8 bytes com sinal ( - 9.223.372.036.854.775.808 a9.223.372.036.854.775.807) (tambm conhecido comoSystem.Int64)

    Exemplos:

    Dim VarIdade As Byte = 25DimVarValorAs Int = 1542145120DimVarValorAs Long = 5684548520DimVarInd As Short = 25620

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    38/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 34

    Lgicos (por valor)

    O tipo lgico ou booleano utilizado para valores do tipo verdadeiro/falso.Na linguagem Visual basic.Net este tipo s pode ser verdadeiro ou falso,

    diferentes de outras linguagem onde poderia receber sim/no ou ainda 1/0.A figura 3.2.2 mostra o tipo booleano que a linguagem suporta.

    Figura 3.2.2 Tipos lgicos ou booleanos.

    Tipo Descrio

    BooleanPode ser somente true ou false. ( tambem conhecido comoSystem.Boolean )

    Exemplos:

    Dim VarAtivarAs Boolean = trueDimVarAtivarAs Boolean = falseDimVarAtivarAs Boolean = Not true

    Caracteres (por valor)

    Este tipo armazenado em 16 bits, representa um caractere de uma string.Essas variveis so armazenadas no padro Unicode.

    A figura 3.2.3 mostra o tipo char.

    Figura 3.2.3 tipo Char.

    Tipo Descrio

    charUm nico caractere Unicode. ( tambm conhecido comoSystem.Char)

    Exemplos:

    Option Strict On

    ' ...

    DimCharVarAs Char

    CharVar= "Z" ' No pode converte de string para caractere com Option Strict On.

    CharVar= "Z"C ' Sucesso em atribuir um nico caractere a varivel CharVar.

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    39/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 35

    Ponto Flutuante (por valor)

    Os nmeros com parte fracionria ou no inteiros so definidos como pontoflutuante.

    Nesse tipo tambm h subtipos, para que o desenvolvedor possa adequarmelhor o tipo de informao com o espao reservado na memria.

    A figura 3.2.4 mostra os subtipos do ponto flutuante.

    Figura 3.2.4 Subtipos do ponto flutuante.

    Tipo Descrio

    Single

    Um nmero de 4 bytes com ponto de frao decimal.((-3.4028235E+38 a -1.401298E-45 para valores negativos) e(1.401298E-45 a 3.4028235E+38 para valores positivos)).

    ( tambem conhecido como System.Single )

    Double

    Um numero de 8 bytes com ponto de frao decimal.((-1.79769313486231570E+308 a -4.94065645841246544E-324para nmeros negativos) e (4.94065645841246544E-324 a1.79769313486231570E+308 para valores positivos)).( tambem conhecido como System.Double)

    DecimalUm numero de 12 bytes com ponto de frao decimal. ( tambemconhecido como System.Decimal)

    Exemplos:

    Dim VarSingle As Single = 312. 12DimVarDouble As Double = 5400. 45DimBigDec1As Decimal = 9223372036854775807 ' No overflow.DimBigDec2As Decimal = 9223372036854775808 ' Overflow.DimBigDec3As Decimal = 9223372036854775808D ' No overflow.

    Date (por referncia)

    Esse tipo armazena valores de datas e horas. O tipo de dados real chamadoDateTime. As datas podem ser armazenadas em muitas formas diferentes, como porexemplo, 13/1/2002, segunda-feira, 13 de janeiro de 2002 6:02:58PM, dentreoutras.

    Para o Visual Basic.net tudo isso data e fcil de fazer a converso de umapara outra.

    Voc deve estar perguntando porque no armazenar essas datas em strings.

    Bem voc pode se assim preferir, mais perde algumas funes que o VisualBasic.Net traz para este tipo de dado como - somar dias, horas e minutos.

    Vejamos abaixo a figura que mostra alguns detalhes do tipo Date.

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    40/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 36

    Figura 3.2.5 Tipo Date

    Tipo Descrio

    DateSo armazenados em nmeros inteiros longos com 8 bytes querepresentam uma data na faixa de 1/1/1 at 31/12/9999. Comrelao s horas valem de 0:00:00 at 23:59:59.

    Exemplos:

    Dim VarHoje As Date = Now

    DimVarData As Date = Today

    DimVarHoras As Date = TimeOfDay

    Dim VarSegundos As Date = Time

    Strings (por referncia)

    Este tipo pode conter at 1 gigabyte de caractere e alocado dinamicamente,por isso dizemos que este tipo por referncia.

    As strings so grupos de caracteres como Cludio Junior, dizer-lhe,#2!455^% ou ainda 1234. As Strings em Visual Basic.Net so includas entreaspas duplas ( Visual Basic.Net ).

    Veja na figura 3.2.6 o tipo string.

    Figura 3.2.6 Tipo String

    Tipo Descrio

    string Aproximadamente 2 bilhes de caracteres.

    Exemplos:

    Dim VarNome As String = Claudio

    DimVarEmail As String = [email protected]

    Dim VarSobrenome As String = Junior

    DimVarConcatenarAs String = VarNome & VarSobrenome

    DimVarConcatenarAs String = VarNome + ( VarSobrenome )

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    41/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 37

    Object (por referncia)

    Este tipo muito utilizado por programadores, um termo geral para umavarivel que no especificado como outro tipo de dados, por isso torna-se um tipouniversal.

    Em certas situaes torna-se indispensvel atribuir e instanciar um objeto.

    Figura 3.2.7 Tipo Object.

    Tipo Descrio

    object Atribuir a um objeto.

    Exemplos:

    Dim VarObjeto As Object = Rubens BarrichelloDim VarObjeto As Object = 234.214D

    Dim VarObjeto As Object = Not false

    Dim VarObjeto As Object = TimeOfDay

    Converso de Valores

    Converter um tipo de dado em nmero ou em literal comum em situaes deprogramao. Quando esta aplicao for destinada a Web com intervenes deinternautas, esse recurso utilizado com mais freqncia ainda.

    A converso pode ser implcita(converses implcitas) ou explicita(conversesespecificadas explicitas) de uma varivel.

    Devemos observar que uma varivel convertida num outro tipo de maior faixa.Em alguns casos os tipos de converso no precisam ser especificados pelo

    desenvolvedor, essa converso feita automaticamente.

    Figura 3.2.8 - os tipos de converso automtica:

    Tipo Converte emByte Byte, Short, Integer, Long, Decimal, Single, Double.

    Short Short, Integer, Long, Decimal, Single, Double.

    Integer Integer, Long, Decimal, Single, Double.

    Long Long, Decimal, Single, Double.

    Decimal Decimal, Single, Double.

    Single Single, Double.

    Double Double

    Char StringQualquer Tipo Object

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    42/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 38

    Figura 3.2.9 - veja as funes para os tipos de converses explcitas.

    Funo Converte em

    Asc Retorna o numero correspondente a tabela

    ASCIICbool Boolean

    Cbyte Byte

    CChar Char

    Cdate Date

    CDbl Double

    Cdec Decimal

    Chr CharCint Integer

    CLng Long

    Cobj Object

    Cshort Short

    CSng Single

    CStr String

    Ctype Converte para o tipo especificado

    Str String

    Val Converte para o tipo numrico especificado.

    Exemplos:

    Dim MyInt As IntegerMyInt = Asc("A") ' MyInt recebe 65.MyInt = Asc("a") ' MyInt recebe 97.MyInt = Asc("Apple") ' MyInt recebe 65.

    Dim A, B, C As IntegerDim Check As BooleanA = 5B = 5Check = CBool(A = B) ' Check recebe True.C = 0Check = CBool(C) ' Check recebe False.

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    43/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 39

    Dim MyDouble As DoubleDim MyInt As Integer

    MyDouble = 2345.5678MyInt = CInt(MyDouble) ' MyInt recebe 2346.

    Dim MyDouble As DoubleDim MyByte As ByteMyDouble = 125.5678MyByte = CByte(MyDouble) ' MyByte recebe 126.

    Dim MyString As StringDim MyChar As CharMyString = "BCD" ' CChar converte somente o primeiro caracter do string.MyChar = CChar(MyString) ' MyChar recebe "B".

    Dim MyDec As DecimalDim MyDouble As DoubleMyDec = 234.456784DMyDouble = CDbl(MyDec * 8.2D * 0.01D) ' Converte o resultado para Double.

    Dim MyDateString, MyTimeString As StringDim MyDate, MyTime As DateMyDateString = "February 12, 1969"MyTimeString = "4:35:47 PM"' ...MyDate = CDate(MyDateString) ' Converte para Data.MyTime = CDate(MyTimeString) ' Converte para Data.

    Dim MyDouble As DoubleDim MyDecimal As DecimalMyDouble = 10000000.0587MyDecimal = CDec(MyDouble) ' Converte para Decimal.

    Dim MyDbl1, MyDbl2 As DoubleDim MyLong1, MyLong2 As LongMyDbl1 = 25427.45MyDbl2 = 25427.55MyLong1 = CLng(MyDbl1) ' MyLong1 recebe 25427.MyLong2 = CLng(MyDbl2) ' MyLong2 recebe 25428.

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    44/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 40

    Dim ValResult As DoubleValResult = Val("2457") ' ValResult recebe 2457.ValResult = Val(" 2 45 7") ' ValResult recebe 2457.ValResult = Val("24 and 57") ' ValResult recebe 24.

    Dim MyDouble As DoubleDim MyObject As ObjectMyDouble = 2.7182818284MyObject = CObj(MyDouble) ' Valor de MyDouble apontado para por MyObject.

    Dim MyByte as ByteDim MyShort as ShortMyByte = 100MyShort = CShort(MyByte) ' Converte para Short.

    Dim MyDouble1, MyDouble2 As DoubleDim MySingle1, MySingle2 As SingleMyDouble1 = 75.3421105MyDouble2 = 75.3421567MySingle1 = CSng(MyDouble1) ' MySingle1 recebe 75.34211.MySingle2 = CSng(MyDouble2) ' MySingle2 recebe 75.34216.

    Dim MyDouble As DoubleDim MyString As StringMyDouble = 437.324MyString = CStr(MyDouble) ' MyString recebe "437.324".

    Dim MyDate As Date

    MyDate = #2/12/69 00:00:01#MyString = CStr(MyDate) ' MyString recebe "2/12/1969 12:00:01 AM".

    Dim MyNumber As LongDim MyNewType As SingleMyNumber = 1000MyNewType = CType(MyNumber,Single) ' MyNewType recebe 1000.0.

    Dim MyString As StringMyString = Str(459) ' Retorna " 459".MyString = Str(-459.65) ' Retorna "-459.65".MyString = Str(459.001) ' Retorna " 459.001".

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    45/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 41

    Operadores

    Os operadores so smbolos utilizados para executar alguma ao.Voc j deve conhecer alguns dos operadores, pois toda linguagem faz-se uso

    de operadores.Acompanhe na figura abaixo os tipos de operadores e suas respectivas funes.

    Figura 3.2.10 Operadores da linguagem Visual Basic.net

    Operador Funo

    ^ Exponencial

    + , - Adio e subtrao

    * , / Multiplicao e Diviso

    \ Diviso ( 10 \ 3 = 3.333333 )

    Mod Mdulo ( 6 mod 4 = 2 )& , + (string) Concatenao

    =, < >, Igual a, no-igual a, maior que, menor que

    = Menor ou igual a, Maior ou igual a

    =, ^=, *=, /=, \=, +=, -=, &= Atribuio

    NOT, AND, OR, XOR Lgico: Negao, E, Ou, Ou exclusivo

    BitNot, BitAnd, BitOr, BitVor Lgico Binrio: Negao, E, Ou, Ou exclusivo

    TypeOf ... Is, Is, Like Relacional

    Exemplos

    Sub ControlProcessor(ByVal MyControl As Control)IfTypeOfMyControl Is ComboBox Then

    Console.WriteLine (" do tipo " & TypeName(MyControl))ElseIfTypeOfMyControl Is CheckBox Then

    Console.WriteLine (" do tipo " & TypeName(MyControl))ElseIfTypeOfMyControl Is TextBox Then

    Console.WriteLine (" do tipo " & TypeName(MyControl))End If

    End Sub

    Dim A As Integer = 10Dim B As Integer = 8Dim C As Integer = 6Dim myCheck As IntegermyCheck = (A And B) ' Retorna 8.myCheck = (A And C) ' Retorna 2.myCheck = (B And C) ' Retorna 0.

    Dim myTest As BooleanmyTest = A > B And B > C ' Retorna True.myTest = B > A And B > C ' Retorna False.

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    46/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 42

    Array

    Um tipo array uma matriz de valores do mesmo tipo, ou seja, ou conjunto deelementos do mesmo tipo dentro de uma nica varivel, que criada em tempo deexecuo, podendo ser acessada por meio de um ndice.

    A declarao do array sempre faz o uso de um parntese( ( ) ) depois do nomeda varivel.

    O tipo array pode ter diversas dimenses, o tamanho desta definido pelodesenvolvedor, mas devemos saber que o primeiro ndice sempre zero. Portantoum array declarado com 10 posies, na realidade ser de 11 posies de 0 a 10.

    Veja abaixo a forma de sintaxe para a declarao de arrays.

    Atribuindo Valores aos Arrays

    Para atribuir um valor aos elementos de um array, voc deve montar um loopingou atribuir um valor especifico a cada elemento do array.

    Vejamos abaixo a atribuio nos dois casos comentados.

    Dim NomeDoArray ( tamanho do vetor) As Tipo

    Dim VarValores (10)As Integer

    Dim VarValores ( ) As Integer = { valores }

    Dim Nomematriz ( tamanho do vetor, tamanho do vetor) As Tipo

    Dim VarMatriz (5, 5)As String

    Imports SystemModule Atribuir

    Sub Main ( )Dim i As IntegerDimVarValores(5)As IntegerFor i=0 to 5

    VarValores(i)= i * 2Next i

    End SubEnd Module

    Imports SystemModule Atribuir

    Sub Main ( )DimVarCores ( )As String = {azul, preto, branco, verde}DimVarNomes ( 3 )As StringVarNomes (0) = AdrianaVarNomes (1) = BeatrizVarNomes (2) = JulianaVarNomes (3) = Maria

    End SubEnd Module

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    47/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 43

    Arrays Multidimensionais

    O array tambm pode ser declarado com vrias dimenses. Muito utilizadoquando precisamos de uma matriz.

    Vejamos abaixo a sintaxe deste array.

    Vejamos abaixo um exemplo de atribuio de valores para um arraymultidimensional.

    As Funes REDIM e ERASE

    Depois de declarado um array com um nmero especifico de elementos vocfica limitado a este tamanho. Entretanto o Visual Basic.Net traz uma funochamada REDIM para redimensionar o tamanho do array.

    Devemos observar algumas minuciosidades deste processo: Quando o vetor redimensionado para outro tamanho, seus valores

    so destrudos. Porem se for utilizada a palavra-chavepreserve osvalores so salvos e atribudos ao novo array.

    Se o novo valor especificado para o redimensionamento formaior,os ndices extras so inicializados com o valor padro.

    Se o novo valor especificado para o redimensionamento formenor,os ndices que no fazem parte da nova faixa do vetor sodestrudos.

    Uma outra funo bastante til a ERASE.Esta funo configura cada elemento do array para Nothing, ou seja, atribui um

    valor NULO as variveis do vetor.

    DimNomeDaMatriz ( tamanho do vetor, tamanho do vetor) As Tipo

    DimVarMatriz ( 15 , 15) As Integer

    Imports System

    Module AtribuirSub Main ( )Dim VarMatriz ( , ) As Integer = {{1, 2, 3}, {4, 5, 6}}Dim I As IntegerDim J As IntegerFor I=0 to 2

    For J=0 to 2Console.WriteLine("VarMatriz("& I &", "& J &"): "&VarMatriz(I, J))

    Next JNext I

    End SubEnd Module

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    48/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 44

    Exemplos e Exerccios

    Exemplo 1 Trabalhando com arrays no Visual Basic.Net

    Imports SystemModule CapArray

    Sub Main ( )Dim I As IntegerDim J As IntegerDim VarCores( ) As String = {"azul", "amarelo", "preto", "verde"}Console.WriteLine(" ------ Inicializao do array VarCores ------ ")For I=0 to 3

    Console.WriteLine("VarCores("& I &"): "&VarCores(I))Next IDim VarValores(5) As IntegerConsole.WriteLine()Console.WriteLine(" ----- Inicializao do array VarValores ----- ")For I=0 to 5

    VarValores(I) = I

    Console.WriteLine("VarValores("& I &"): "&VarValores(I))Next IDim VarMatriz(3, 2) As IntegerConsole.WriteLine()Console.WriteLine(" ------ Inicializao do array VarMatriz ------ ")For I=0 to 3

    For J=0 to 2VarMatriz(I, J) = I + JConsole.WriteLine("VarMatriz("& I &", "& J &"): "&VarMatriz(I, J))

    Next JNext IDim VarMatrizB( , ) As Integer = {{1, 2, 3}, {4, 5, 6}}Console.WriteLine()

    Console.WriteLine(" ------ Inicializao do array VarMatrizB ----- ")For I=0 to 1For J=0 to 2

    Console.WriteLine("VarMatrizB("& I &", "& J &"): "&VarMatrizB(I, J))Next J

    Next IRedim VarValores(8)Console.WriteLine()Console.WriteLine(" ---- Redimensionamento do array VarValores ---- ")J=0For Each I in VarValores

    Console.WriteLine("VarValores("& J &"): "&VarValores(I))J = J+1

    NextReDim Preserve VarMatriz(3, 5) 'Apenas o ultimo valor pode ser redimensionadoConsole.WriteLine()Console.WriteLine(" ---- Redimensionamento do array VarMatriz ---- ")For I=0 to 3

    For J=0 to 5Console.WriteLine("VarMatriz("& I &", "& J &"): "&VarMatriz(I, J))

    Next JNext IErase VarCoresRedim Preserve VarCores(3)Console.WriteLIne()Console.WriteLine(" ---- Redimensionamento do array VarCores ---- ")

    For I=0 to 3Console.WriteLine("VarCores("& I &"): "& VarCores(I))Next I

    End SubEnd Module

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    49/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 45

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    50/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 46

    Captulo 4 Estruturas de Controle

    Para o aplicativo executar a lgica desejada dependendo das informaes quelhe so atribudas, existem as estruturas de controle. Assim o aplicativo executara asinstrues de acordo com uma certa deciso, tendo ou no a participao do

    internauta.Estas estruturas de controle existem em qualquer linguagem de programao.

    4.1 Estruturas de deciso

    As estruturas de deciso ou tambm chamada de lgica condicional, permiteespecificar qual cdigo deve ser executado dependendo das condies satisfeitas.

    Este recurso torna-se necessrio para qualquer lgica implementada.

    4.1.1 Instruo if .. then ... else ... elseif

    a forma mais simples de se aplicar lgica condicional.A instruo if simples. Se a condio for satisfeita ento o cdigo executado.Vamos ver a forma de sintaxe para esta instruo ( if).

    A instruo else opcional e indica a instruo que o aplicativo deve executar

    se a condio imposta pelo ifno for satisfatria.Temos tambm a instruo elseifque permite testar outras condies.Vamos ver a forma de sintaxe para estas instrues ( else, elseif).

    Para C# If( condio ) {Instrues;

    }

    exemplo C#: if( VarIdade >= 18 ) {Console.WriteLine(Usurio de maior idade);}

    Para VB if( condio ) ThenInstrues

    end if

    exemplo VB: ifVarIdade >= 18 ThenConsole.WriteLine(Usurio de maior idade)

    end if

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    51/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 47

    Para C# If( condio ) {Instrues;

    }else if( condio ) {

    Instrues;}

    else {Instrues;

    }

    exemplo C#: If( Numero < 10 ) {Console.WriteLine(O Nmero possui 1 dgito);

    }else if( Numero < 100 ) {

    Console.WriteLine(O Nmero possui 2 dgitos);}

    else {Console.WriteLine(O N possui mais de 2 dgitos);

    }

    outra forma para c#: if( condio? InstrucaoVerdade : InstrucaoFalsa );

    exemplo c#: Console.Write ( idade >= 18? Maior idade: Menor idade );

    Para VB If( condio ) thenInstrues

    elseif( condio ) thenInstrues

    elseInstrues

    end if

    exemplo VB: If( Number < 10 ) then

    Console.WriteLine(O Nmero possui 1 digito)elseif( Number < 100 ) thenConsole.WriteLine(O Nmero possui 2 dgitos)

    elseConsole.WriteLine(O N possui mais de 2 dgitos)

    end if

    outra forma para vb: iif( condio, InstrucaoVerdade , InstrucaoFalsa )

    exemplo vb: Console.Write( iif( idade >= 18, Maior idade, Menor idade ) )

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    52/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 48

    4.1.2 Instruo switch(c#) e case(vb)

    A instruo switch(c#) e case(vb) so utilizadas em situaes em que houver anecessidade de diversos testes condicionais. So basicamente uma combinao deinstruo ifcom oraes de elseif.

    Estas instrues examinam uma condio e especifica qual bloco de cdigodeve ser executado.

    Vamos examinar a sintaxe da instruo switch(c#).

    Vamos examinar a sintaxe para a instruo Select case(vb).

    switch ( condio ){

    casecondio 1 : Instrues; break;

    casecondio 2 : Instrues; break;

    casecondio N : Instrues; break;

    default: instrues default;}

    Exemplo:switch ( Estado ){

    casePR: Console.WriteLine(Viagem para Curitiba); break;

    caseMG: Console.WriteLine(Viagem para Belo Horizonte); break;

    caseRJ: Console.WriteLine(Viagem para o Rio de Janeiro); break;

    default: Console.WriteLine(Viagem para So Paulo); break;

    }

    select case condio

    casecondio 1 : Instrues

    casecondio 2 : Instrues

    casecondio N : Instrues

    case else: instrues default

    end select

    Exemplo:

    Select caseEstado

    casePR: Console.WriteLine(Viagem para Curitiba)

    caseMG: Console.WriteLine(Viagem para Belo Horizonte)

    caseRJ: Console.WriteLine(Viagem para o Rio de Janeiro)

    case select: Console.WriteLine(Viagem para So Paulo)

    end select

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    53/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 49

    4.2 Estruturas de Repetio

    As estruturas de repetio so utilizadas em situaes onde preciso executarum conjunto de instrues determinadas vezes, at que a condio imposta para ofim da repetio for satisfeita.

    4.2.1 Instruo For

    Esta estrutura de repetio utilizada quando o desenvolvedor sabe quantasvezes o cdigo deve ser executado. Por isso devemos definir as faixas inicial e final.

    Esse loop incrementa um contador para dizer quando encerrar a execuodesta repetio.

    Vamos acompanhar abaixo a sintaxe desta instruo ( for).

    Uma variao desta instruo o foreach...in(c#) ou for...each(vb).A diferena desta instruo que o desenvolvedor no precisa especificar as

    faixas inicial e final. utilizado para percorrer uma coleo ou um array por exemplo.Vamos acompanhar a sintaxe da instruo.

    Para C#: for ( varivel; condio; incremento ){

    Instrues;}

    Exemplo c#: for ( int i=1; i

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    54/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 50

    4.2.2 Instruo While

    Esta instruo executa um loop enquanto uma determinada condio deexecuo for satisfatria. While significa enquanto, portanto enquanto a condiofor verdade sero executas as instrues.

    Acompanhe a sintaxe abaixo:

    4.2.3 Instruo Do While

    O loop do while tem a mesma funo da instruo While, a nica diferena que a condio testada no final da instruo. Com isso podemos assegurar emalguns casos na linguagem C# que o loop seja realizado pelo menos uma nica vez.

    Acompanhe a sintaxe abaixo:

    Para c#: while ( condio ){

    Instrucoes;}

    exemplo c#: while ( Numero < 10 ){

    Console.WriteLine( Numero );}

    Para vb: while ( condio )

    Instrucoesend while

    exemplo vb: while Numero < 10Console.WriteLine( Numero )

    end while

    Para c#: do{

    Instrucoes;}while ( condio );

    exemplo c#: do{

    Console.WriteLine( Numero );}while ( Numero < 10 );

    Para vb: do while ( condio )Instrucoes

    loop

    exemplo vb: do while Numero < 10Console.WriteLine( Numero )

    loop

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    55/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 51

    4.2.4 Instruo Do Loop ( apenas Visual Basic.Net )

    O objetivo desta instruo fazer o papel do looping While e Do While, mascom a diferena de executar pelo menos uma vez a repetio.

    Acompanhe a sintaxe abaixo:

    Para vb: DoInstrues

    Loop Untilcondio

    Exemplo vb: DoConsole.WriteLine( Numero )

    Loop Untilnumero < 10

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    56/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 52

    Exemplos e Exerccios:

    Exemplo 1 Estruturas de controle na linguagem C# .

    using System;public class ExemploIf{

    public static void Main(){

    int VarNumero = 0;Console.WriteLine(" ---------------- Instruo IF ------------------- ");Console.Write("Fornea um nmero: ");string Leia = Console.ReadLine( );VarNumero = int.Parse( Leia );if (VarNumero < 10) {

    Console.WriteLine(" O Numero possui 1 digito ");} else if (VarNumero < 100) {

    Console.WriteLine(" O Numero possui 2 dgitos ");}else { Console.WriteLine(" o Numero possui 3 ou mais nmeros ");

    }

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

    Console.Write("fornea a sigla de um Estado da regio Sudeste: ");Leia = Console.ReadLine();Leia = Leia.ToUpper(); // Transforma o string com letras maisculas.switch ( Leia ){

    case "MG": Console.WriteLine("A capital se chama: Belo Horizonte"); break;case "SP": Console.WriteLine("A capital se chama: So Paulo"); break;

    case "RJ": Console.WriteLine("A capital se chama: Rio de Janeiro"); break;case "ES": Console.WriteLine("A capital se chama: Vitria"); break;default: Console.WriteLine("Voc no digitou uma sigla correta"); break;

    }

    Console.WriteLine( );Console.WriteLine(" ---------------- Instruo WHILE ------------------- ");int Condicao = 1;Console.Write("Fornea um valor para repetio de 3 - 7 :");Leia = Console.ReadLine( );VarNumero = int.Parse( Leia );int Final =1;

    if (VarNumero > 2) {if (VarNumero < 8) {

    Final = VarNumero;}else { Final = 2;

    }}

    Console.WriteLine( Final==2 ? "Valor Incorreto" : "Valor Correto" );

    while ( Condicao < = Final ){

    Console.WriteLine("Valor da variavel Condicao: {0}", Condicao);Condicao++;

    }}

    }

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    57/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 53

    Acompanhe a sada do programa acima:

  • 7/22/2019 105_Apostila ASP Net, C# e Visual Basic.net

    58/141

    Curso de Introduo a Plataforma .Net FrameWork SDK 54

    Exemplo 2 Estruturas de controle na linguagem Visual Basic.Net

    Imports SystemModule ExemploVb

    Sub Main()Dim VarNumero As Integer = 0

    Console.WriteLine(" ---------------- Instruo IF ------------------- ")

    Console.Write("Fornea um nmero: ")Dim Leia As StringLeia = Console.ReadLine()VarNumero = Integer.Parse(Leia)

    If (VarNumero < 10) T