Apostila De VB

Transcription

Versão: 2.0www.marcelosincic.com.brPágina 1 de 45Olá,Criei estas apostilas a mais de 5 anos e atualizei uma série delas com alguns dados adicionais.Muitas partes desta apostila está desatualizada, mas servirá para quem quer tirar uma dúvida ouaprender sobre .Net e as outras tecnologias.Perfil Microsoft: sincic/profileMarcelo Sincic trabalha com informática desde 1988. Durante anos trabalhou com desenvolvimento (iniciando comDbase III e Clipper S'87) e com redes (Novell 2.0 e Lantastic).Hoje atua como consultor e instrutor para diversos parceiros e clientes Microsoft.Recebeu em abril de 2009 o prêmio Latin American MCT Awards no MCT Summit 2009, um prêmio entregue a apenas5 instrutores de toda a América Latina ft-MCT-Awards-AmericaLatina.aspx).Recebeu em setembro de 2009 o prêmio IT HERO da equipe Microsoft Technet Brasil em reconhecimento a projetodesenvolvido -Microsoft-TechNet.aspx). Em Novembro de 2009recebeu novamente um premio do programa IT Hero agora na categoria de osso-projeto-de-OCS2007.aspx).Acumula por 5 vezes certificações com o título Charter Member, indicando estar entre os primeiros do mundo a secertificarem profissionalmente em Windows 2008 e Windows 7.Possui diversas certificações oficiais de TI:MCITP - Microsoft Certified IT Professional Database Administrator SQL Server 2008MCITP - Microsoft Certified IT Professional Database Administrator SQL Server 2005MCITP - Microsoft Certified IT Professional Windows Server 2008 AdminMCITP - Microsoft Certified IT Professional Enterprise Administrator Windows 7 Charter MemberMCITP - Microsoft Certified IT Professional Enterprise Support TechnicalMCPD - Microsoft Certified Professional Developer: Web ApplicationsMCTS - Microsoft Certified Technology Specialist: Windows 7 Charter MemberMCTS - Microsoft Certified Technology Specialist: Windows Mobile 6. Charter MemberMCTS - Microsoft Certified Technology Specialist: Windows 2008 Active Directory Charter MemberMCTS - Microsoft Certified Technology Specialist: Windows 2008 Networking Charter MemberMCTS - Microsoft Certified Technology Specialist: System Center Configuration ManagerMCTS - Microsoft Certified Technology Specialist: System Center Operations ManagerMCTS - Microsoft Certified Technology Specialist: Exchange 2007MCTS - Microsoft Certified Technology Specialist: Windows Sharepoint Services 3.0MCTS - Microsoft Certified Technology Specialist: SQL Server 2008MCTS - Microsoft Certified Technology Specialist: .NET Framework 3.5, ASP.NET ApplicationsMCTS - Microsoft Certified Technology Specialist: SQL Server 2005MCTS - Microsoft Certified Technology Specialist: Windows VistaMCTS - Microsoft Certified Technology Specialist: .NET Famework 2.0MCDBA – Microsoft Certified Database Administrator (SQL Server 2000/OLAP/BI)MCAD – Microsoft Certified Application Developer .NETMCSA 2000 – Microsoft Certified System Administrator Windows 2000MCSA 2003 – Microsoft Certified System Administrator Windows 2003Microsoft Small and Medium Business SpecialistMCP – Visual Basic e ASPMCT – Microsoft Certified TrainerSUN Java Trainer – Java Core Trainer ApprovedIBM Certified System Administrator – Lotus Domino 6.0/6.5www.marcelosincic.com.brReprodução e distribuição livre

Versão: 2.01www.marcelosincic.com.brPágina 2 de 45Visão Geral do Visual Basic.NET 41.1Conceitos Básicos 41.1.1Regras de Codificação em VB.NET 41.1.2Projetos e Soluções 51.1.3Classes 51.2Formulários e Controles 71.2.1Utilizando Controles 71.2.2Manipulação de Controles 71.2.3Debug 81.2.4Compilação 92Manipulação de Variáveis 112.1Nomeando Variaveis 112.2Tipos de Dados do Sistema 112.3Utilizando Variáveis CTS 112.3.1Criação e Atribuição de Valor 112.3.2Operadores e Precedência 122.3.3Manipulação de String 1232.4Conversões Implícitas e Explicitas 132.5Tipos Compostos 132.6Constantes e Read Only 14Instruções Condicionais, Laços e Desvios 153.1Contexto de Variáveis 153.2Comparativos 153.2.1Comando If 153.2.2Comando Select Case 163.3Laços 163.3.1Comando While e Do 163.3.2Comando For.Next 173.3.3Comando For.Each 173.44Desvios 18Tratamento de Erro 194.1Erro de Execução sem Tratamento 194.2Try.Catch.Finally 194.2.1Try.Finally 204.2.2Throw 205Métodos 225.1Definição de Métodos 225.1.1Métodos Compartilhados sem Retorno 225.1.2Métodos Compartilhados com Retorno 22www.marcelosincic.com.brReprodução e distribuição livre

Versão: 2.0www.marcelosincic.com.brPágina 3 de 455.2Recebendo Parâmetros 235.2.1Parâmetros de Entrada (ByVal) 235.2.2Parâmetros Referenciais (ByRef) 245.2.3Parâmetros Múltiplos 255.36Overload de Métodos 26Arrays e Parâmetros 286.1Definição 286.1.1Definindo Arrays 286.27Métodos Comuns 29Classes Básicas do .NET Framework 307.1Classe AppDomain 307.2Classe Security 307.3Classe IO 308Classes e Objetos 328.1Definição de Classes e Objetos 328.1.1Abstração e Encapsulamento 328.1.2Herança 338.1.3Polimorfismo 338.1.4Classes Abstratas 338.1.5Interfaces 348.2Criação e Instanciamento de Classes 348.2.1Propriedades e Enumeradores 358.2.2Construtores 368.2.3Destrutores 378.3Controle de Acessibilidade 378.3.1Métodos Compartilhados 389Herança e Polimorfismo 399.1Classes e Métodos Protegidas 409.2Polimorfismo 4110Namespace, Delegates e Operadores 4310.1Namespace 4310.2Delegates 4310.3Eventos 44www.marcelosincic.com.brReprodução e distribuição livre

Versão: 2.01www.marcelosincic.com.brPágina 4 de 45Visão Geral do Visual Basic.NET1.1 Conceitos BásicosAntes de codificar um programa dentro do Visual Studio precisamos conhecer as regras básicas decódigo, conceitos de projetos e classe, utilização e manipulação de propriedades dos objetos, debuge compilação.1.1.1 Regras de Codificação em VB.NETAo utilizar duplo clique no formulário “Form1” abrimos o editor de código e inserimos apenas as daslinhas dentro do bloco “Form1 Load”. O restante do código que pode ser notado faz parte do objetoformulário padrão.Algumas das principais regras de sintaxe do VB podem ser notadas no exemplo: Não existe um método inicializador dentro dos objetos do projeto. O método Main é opcional edeve constar em módulo. Não existe delimitador de final das linhas de instruções. Classes e instruções de bloco iniciam com sua declaração e terminam com End. Existem dois modelos de codificação, PascalCasing e carnelCasing. Por padrão todo oframework é baseado em PascalCasing, ou seja todas as primeiras letras em maiúsculo,incluindo nas classes do CLR, como por exemplo a classe System.InteropServices. O VB.NETtambém tem suas instruções em PascalCasing, não sendo obrigatória a digitação exata, o VScorrige a capitulação. A identação não é obrigatória para a linguagem, mas extremamente recomendável nacodificação. Como pode ser visto, a identação está na linha onde consta o Msgbox está nowww.marcelosincic.com.brReprodução e distribuição livre

Versão: 2.0 www.marcelosincic.com.brPágina 5 de 45quarto nível, sendo o nível principal o nome da aplicação, o segundo nível a classe doformulário, o terceiro nível é o método Load. No VS a identação é automática.Para fazer comentários utiliza-se as duas apóstrofo “’”, que podem ser usadas tanto em umalinha inteira quanto no final da linha. Ao compilar um projeto, os comentários são excluídos doassemblie.1.1.2 Projetos e SoluçõesNo VS todas as aplicações são chamadas de projetos. Cada projeto é um assemblie, seja este umexecutável, dll ou aplicação web. O tipo de assemblie a ser gerado pode ser alterado por se clicarcom o botão direito no nome do projeto e escolher Properties.Existem algumas limitações quanto a alteração do tipo de assemblie a ser gerado. AplicaçõesWinForms, Console e Library podem ser convertidas entre elas sem problemas, mas aplicações websó podem ser convertidas entre si, no caso os projetos do tipo Web Application e Web Services.DICA: Diferente do Java, no .NET não há ligação entre o nome do assemblie e das classes nem nonamespace (detalhes no módulo 10).O Startup Object é um formulário ou o método (formulários no .NET tambem são classes) quecontenha o método Main.Um importante recurso provido pelo VS é trabalhar com o conceito de Solution ou solução. Podemosagrupar diferentes tipos de projetos em uma solução, como por exemplo, em uma única solução terdois projetos WinForms, um projeto web service e um quarto projeto web application. Utilizandosoluções conseguimos em uma única janela do VS aberta trabalhar com todos os projetos a queestamos envolvidos.DICA: Solutions não devem ser compartilhados entre usuários, enquanto projetos sim.Um projeto utiliza como extensão de arquivo o acrônimo da linguagem mais a palavra proj, porexemplo vbproj e cproj. Já as soluções utilizam a extensão sln e ficam sempre no diretório local dousuário, enquanto o projeto pode estar na rede ou no servidor web quando a aplicação é do tipo webapplication.1.1.3 ClassesNão entraremos em detalhes agora sobre recursos das classes, mas precisamos entender aestrutura de um projeto, e para isso é essencial entender o conceito das classes.www.marcelosincic.com.brReprodução e distribuição livre

Versão: 2.0www.marcelosincic.com.brPágina 6 de 45Classes são objetos que podem ou não se tornar componentes. Damos o nome componente aosassemblies, e um mesmo assemblie pode conter diversas classes. Da mesma maneira, o arquivofísico no disco que contem as classes, extensão cs para C# e vb para Visual Basic, podendo contemmúltiplas classes internamente. Veja o diagrama abaixo para entender melhor este conceito.Veja no projeto abaixo um exemplo de uma solução, um projeto, dois arquivos de classes VB e emum único arquivo três classes contidas.Apesar de estarem dentro do arquivo Class1 as três classes são totalmente independentes ao seremcompiladas. Ou seja, não importa o arquivo físico onde as classes estão, uma vez que nacompilação não existem arquivos físicos, apenas classes. Imagine que no assemblie compiladoestará apenas as classes Form1, Automóveis, Motoclicletas e Bicicletas dentro do componenteWindowsApplication2.DICA: Uma arquivo pode conter múltiplas classes, mas uma classe não pode ser em múltiplosarquivos.Uma classe sempre utiliza um escopo, neste caso public (detalhes no módulo 6), a palavra chaveclass e o nome definido. Todas as classes iniciam e terminam com os delimitadores de chave.www.marcelosincic.com.brReprodução e distribuição livre

Versão: 2.0www.marcelosincic.com.brPágina 7 de 451.2 Formulários e Controles1.2.1 Utilizando ControlesControles são os objetos gráficos utilizados em formulários.Ao utilizar formulários, seja do tipo windows ou web, podemos arrastar os controles da barra deferramentas (toolbox). Segue abaixo uma lista dos principais controles utilizados em aplicaçõesWinForms.ÍconeFunçãoA barra de rodapé fixa utilizada nos aplicativos como Office, Explorer e outros para mostrar estado de botões,data e hora, e qualquer outra dado utilizando painéisGuias como as de propriedades permitindo múltiplas janelas em um único espaçoCaixa para digitação, possui a propriedade multiline para maiores.Em intervalos freqüentes executa o método timerBarra de botões 3D como a utilizada nos aplicativos do Windows.Caixas automáticas de ajudaLista de textos, imagens e qualquer outro tipo de informação, utilizada no Windows Explorer para demonstrara lista de diretóriosBotão de comando com texto ou imagem de fundoCaixa de ligado e desligado para múltiplas opções simultâneasLista com múltiplos checkbox em um único espaçoLista de opções com única escolhaMenu de botão direitoVisualizador de relatórios criados com o Crystal Report embutido no VS2003Grid de dadosCaixa de texto com botão para mostrar calendário dinâmicoCaixa de texto fixa. O LinkLabel permite chamar páginas Internet executando o browserLista com diversos itens, podendo ser configurada para múltiplas opçõesCalendário aberto com navegação, utilizado no WindowsNumérico com valores máximo e mínimo com botões para alteraçãoImagem com controle de clickBarra de progresso, utilizada no Internet Explorer para indicar progressoBotões de opção para única escolhaÍcone no tray icon do WindowsMenu para formulários1.2.2 Manipulação de ControlesPara manipular estes controle em tempo de design (tela de edição gráfica do VS) utilizamos a janelade propriedades (properties). Mas quando precisamos manipular as propriedades em tempo deexecução (runtime) utilizamos o nome do objeto e acessamos suas propriedades. O exemplo abaixodemonstra este principio, onde foi colocado um label, um textbox e um botão e o objetivo é digitar umtexto no textbox e ao clicar no botão o texto ser colocado no label.www.marcelosincic.com.brReprodução e distribuição livre

Versão: 2.0www.marcelosincic.com.brPágina 8 de 45Neste caso acessamos o método Click por ser o método padrão, bastando utilizar duplo clique.Outros métodos de um objeto podem ser acessados por escolher este na lista de objetos e oseventos na lista ao lado.Ao digitar na janela de código o nome do objeto automaticamente o VS mostra uma lista com todosos eventos, métodos e propriedades que o controle possui. O símboloindica propriedade,indicam os métodos e os eventos.1.2.3 DebugOs recursos de debug do VS são muito úteis e permitem ver em tempo real a linha de código queestá sendo executada, permitindo com uma variedade de janelas auxiliares verificar valores devariáveis (watch), valores atuais (local) e outras que ficam ativas quando executamos o projeto (teclaF5).Para poder fazer o debug de um programa temos duas diferentes formas. A primeira é utilizar ajanela watch para definir um break que consiste em colocar o nome da variável ou propriedade queestá debugando e escolher entre parar a execução quando mudar de valor, ao ter um determinadovalor ou em determinado local de alteração. É um modo muito útil quando temos problemas comuma variável e não sabemos qual é o local ou situação onde este valor está sendo alterado.A segunda forma de fazer debug é marcar uma linha de breakpoint, ou ponto de parada, clicando-sena linha e utilizando o menu debug ou clicando-se na barra lateral de configuração, como o exemploabaixo demonstra.www.marcelosincic.com.brReprodução e distribuição livre

Versão: 2.0www.marcelosincic.com.brPágina 9 de 45Os recursos Step Into e Step Over são especialmente importantes por permitirem passar o teste alinha seguinte ou pular aquele método até o breakpoint seguinte.1.2.4 CompilaçãoCompilar um programa feito em linguagens como Visual Basic 6, C 1, Delphi e algumas outraslinguagens geramos um código que para ser executado não necessita de um framework como o.NET. A este modelo chamamos de código nativo.Como o .NET precisa do framework para poder funcionar, não existe código nativo de máquina, massim o IL como citado no módulo 1. Veja abaixo o método click do botão do formulário criadoanteriormente em IL:.method private hidebysig instance void button1 Click(object sender,class [mscorlib]System.EventArgs e) cil managed{‘ Code size25 (0x19).maxstack 2.locals init ([0] string Texto)IL 0000: ldarg.0IL 0001: ldfldclass [System.Windows.Forms]System.Windows.Forms.TextBox WindowsApplication1.Form1::textBox1IL 0006: callvirt instance string ::get Text()IL 000b: stloc.0IL 000c: ldarg.0IL 000d: ldfldclass [System.Windows.Forms]System.Windows.Forms.Label WindowsApplication1.Form1::label1IL 0012: ldloc.0IL 0013: callvirt instance void ::set Text(string)IL 0018: ret} ‘ end of method Form1::button1 ClickComo podemos notar, o código não é o mesmo que escrevemos originalmente, mas ele possui asclasses completas dos controles utilizados, como por exemplo a linhawww.marcelosincic.com.brReprodução e distribuição livre

Versão: ystem.Windows.Forms.Control::set Text(string),Página 10 de 45onde é referenciado o textbox e utilizando oset para alterar a propriedade texto com uma string.Para que um programa escrito em linguagens do .NET se transformem em IL é necessário umcompilador específico. Por exemplo, o compilador do C# se chama csc.exe e o compilador do VB é ovbc.exe. Utilizando o compilador do C# para criar a aplicação utilizada até o momento utilizamos aseguinte linha de comando:vbc /target:exe /out:MeuExecutavel.exe Class1.cs Form1.csNesta linha definimos o tipo de assemblie, neste caso executável, o nome do assemblie e osarquivos físicos de classes que devem ser incluídos.DICA: Para poder usar linhas de comando do .NET utilizamos o “VS .NET 2003 Command Prompt” enão o console normal de comando do Windows.Outro importante aplicativo utilizado na linha de comando é o ngen.exe para evitar o IL. Caso utilizeeste aplicativo ao invés de criar um IL teremos um assemblie já interpretado para .NET, o que nãoelimina a necessidade do framework para acessar os objetos, mas evita que o “Code Manager” e o“MSIL to Native Compiler” tenham que ser utilizados nas execuções deste programa.Outros aplicativos como o sn.exe, certmgr.exe, gacutil.exe, etc. são tratrados nas apostilas deframework avançado e enterprise services.www.marcelosincic.com.brReprodução e distribuição livre

Versão: 2.0www.marcelosincic.com.brPágina 11 de 452 Manipulação de Variáveis2.1 Nomeando VariaveisAlgumas regras básicas devem ser seguidas ao dar nome a variáveis: Não devem começar com números, sempre com letras Evite utilizar “ ” Utilize PascalCasing Evite abreviações ou nomes não relacionados Não utilize palavras reservadas.2.2 Tipos de Dados do SistemaO .NET Framework é quem cria, manipula e gerencia variável. Este processo éinteressante por permitir que todas as linguagens tenham os mesmos tipos de dados, sendo este omotivo de interoperabilidade sem problemas de compatibilidade. Este conjunto de variáveis échamado de CTS (Common Type Safe), sendo controlado pelo componente Type Checker do CLR.Os principais tipos de dados que o CTS possui são referenciados pelo nome deles ou então pelosalias (apelidos) padronizados em todas as linguagens e banco de dados. Segue a lista dos tipos eseus alias utilizados no bleBooleanDecimalStringNome de bleSystem.BooleanSystem.DecimalSystem.String2.3 Utilizando Variáveis CTSO CTS suporta variáveis de sistema (citadas anteriormente) e objetos, como por exemplo,formulários, classes, controles, etc.A forma de transferência e assimilação de valores pode ser feita pelo modo valor (ByVal) ou pelomodo referencia (ByRef). Todos as variáveis criadas de objetos são do tipo referencia, uma vez queo tipo de dados é parte do framework e o que se cria é apenas um apontador para o objeto. Porexemplo, ao criar uma variável do tipo Dataset não se está criando um novo dataset. Para issoprecisa-se utilizar a palavra chave New.2.3.1 Criação e Atribuição de ValorAo criar uma variável do tipo CTS a sintaxe básica é formada pelo tipo da variável, pode ser o alias,e o nome. Opcionalmente pode-se atribuir o valor inicial sem a necessidade de outra linha. Compareos dois exemplos abaixo:www.marcelosincic.com.brReprodução e distribuição livre

Versão: 2.0www.marcelosincic.com.brPágina 12 de 45Dim Idade As Integer‘Variável numérica de nome idade sem valorIdade 19‘Atribuído um valor numérico inteiroDim Nome As String “Fulano”‘Variável texto Nome com valor já definidoUtilizamos aqui variáveis CTS e seus respectivos alias, mas poderíamos ter usado os nomes desistema:Dim Idade As System.Int16Idade 19Dim Nome As System.String “Fulano”‘Variável numérica de nome idade sem valor‘Atribuído um valor numérico inteiro‘Variável texto Nome com valor já definidoPara alteração de valores da variável utilizamos o sinal “ ” mesmo quando a alteração é somar,dividir e outros, como o exemplificado abaixo:Dim Contador as Integer 0Contador 1Contador - 1Contador / 2‘Criação com valor 0‘Soma um‘Subtrai um‘Divide por 2Segue a lista com todos os operadores, função e exemplo:Operador e FunçãoAltera valor de variáveis CTS e compara igualdadeNome diferente de FulanoMaior (31 para frente) e maior ou igual (inclui o 30) e Menor (29 para baixo) e menor ou igual (inclui o 30)isAndOriif 1ModCompara igualdade entre objetosSignifica que as comparações devem ser todas verdadeirasSignifica apenas uma das comparações precisa ser verdadeiraCondicional true/falseSoma um a variável numéricaDivide um numero retornando o restoExemploNome “Fulano”Nome “Fulano”Idade 30Idade 30Idade 30Idade 30If TypeOf Button1 Is Button ThenIdade 30 And Nome “Fulano”Idade 30 Or Nome “Fulano”iif(Nome (x-y), “OK” , “Erro”)Idade 1Idade Mod 3 0.502.3.2 Operadores e PrecedênciaAssim como em cálculos matemáticos, existe uma precedência em processamento de variáveis evalores. Por exemplo, na equação 1 2*3/4 o resultado será dois e meio uma vez que multiplicação edivisão são executadas antes da adição e subtração.Para servir de referencia siga a seguinte regra: *, /, %, , -, And e Or.Como alternativa para controle de precedência utilize parênteses. Por exemplo ao invés de escreverA Or B And C escreva (A Or B ) And C. Vamos entender a diferença.No primeiro exemplo B e C tem que ser igual e A não faz diferença. No segundo exemplo A e B nãofazem diferença, qualquer um deles pode ser combinado com C. Aqui fica clara a diferença feita pelocontrole de precedência.2.3.3 Manipulação de StringVariáveis do tipo string são especiais por permitirem uma séria de operações especiais. A tabelaabaixo demonstra o efeito de cada um dos métodos string:OperaçãoIndexOf(“a”)Insert(3, “xxx”)LastIndexOf(s, “a”)LengthPadLeft(5, “0”)PadRight(5, “0”)Remove(“ar”)Replace(“ari”, or da 00MiaMvvvaUm em cada posição do arrayReprodução e distribuição livre

Versão: celosincic.com.brProdutividadeProdutividadeInteiro 60ProdutividadeProdutividadePágina 13 de 45OdutProdutividadeString 60PRODUTIVIDADEProdutividadeVariáveis string são tratadas como array, portanto ao utilizar o numero dois não estamos chamandoa segunda letra mas sim a terceira, pois numerações de conjuntos iniciam baseados no zero e nãono numero um.2.4 Conversões Implícitas e ExplicitasConversões implícitas são feitas sem a necessidade de transformar um valor em outro. Isto só podeser feito quando duas variáveis são do mesmo tipo principal, como por exemplo, dois valoresnuméricos ou valores string. Veja os exemplos abaixo:Dim Numero As IntegerDim Convertido As Long Numero ‘Funciona pois os dois são númerosDim Convertido As String Numero ‘Funciona por cast automáticoNumero “888”‘Funciona por cast automáticoNo primeiro exemplo a variável long é numérica e maior que a variável inteira, portanto não énecessário converter.Para conversões explicitas no VB utilize as funções incorporadas a linguagem:Dim Numero As IntegerNumero Cint(“888”)Dim Nome As StringNome Numero.ToString()As funções de conversão no VB são sempre precedidas por um “c” e o acrônimo do dado desejado,ou seja, clng, cint, cbol, cdbl, etc.Para conversão de um numero para Char utiliza-se o Chr(x), e de um caractere para ASCII ainstrução Asc(‘x’).2.5 Tipos CompostosExistem dois tipos compostos no .NET Framework. São os valores do tipo Enum e Structure.Os valores do tipo Enum servem fornecer uma lista de valores possíveis, e permite que se utilize umnome ao invés de um valor numérico. Como exemplo imagine uma aplicação onde temos que definiro sexo das pessoas envolvidas em um processo de seleção. O exemplo abaixo demonstra comoeste código seria:Enum Sexo As IntegerMasculino 1Feminino 2Ignorado 3End EnumDim NomeFuncionario As String “Maria”Dim SexoFuncionario as Integer Resultado 2Como notado, é muito mais fácil digitar Sexo e depois o tipo do que decorar que o numero um émasculino e o numero 2 é feminino. A praticidade do enum é reconhecida pois o próprio .NET utilizaenum em muitas de suas classes. Sabemos da existência de um Enum pelo símbolo na lista deum objeto.Por outro lado, enquanto o enum cria uma lista de possibilidades com valores numéricos oucaracteres fixos, o Structure monta uma variável composta por diversos dados. Por exemplo, criarwww.marcelosincic.com.brReprodução e distribuição livre

Versão: 2.0www.marcelosincic.com.brPágina 14 de 45um Structure chamado funcionário que contenha nome, idade, telefone e endereço. Veja o exemplode enum agora combinado com Structure:Structure FuncionarioDim Nome As StringDim Idade As StringDim Telefone As StringDim Endereco As StringEnd StructureEnum Sexo As IntegerMasculino 1Feminino 2Ignorado 3End EnumFuncionário MariaMaria.Nome “Maria”Maria.Idade 20Maria.Telefone 89897676Maria.Sexo tado 2Este exemplo demonstrou muito bem como um Structure ajuda, pois ele é utilizado como uma únicavariável, neste exemplo chamamos de funcionário, e criamos uma variável baseada no Structure, noexemplo Maria, e esta variavel contem os atributos que um funcionário deve ter. A vantagem de umStructure é montar uma estrutura pronta, uma vez que evita a um programador esquecer ou deixarde informar determinado valor para um funcionário, pois o funcionário já contem automaticamente osquatro atributos, mesmo que não informados. O sinal que indica um Structure é .2.6 Constantes e Read OnlyConstantes são variáveis com valores fixos. Por exemplo, o PI matemático é um constante de(aproximadamente) 3,141516.Podemos criar constantes para certos dados muito utilizados em uma aplicação, como o exemploabaixo:Const Aplicação As String "Curso"Const Cidade As String "Taquaritinga"Msgbox(Aplicacao " -- " Cidade)Notamos que as variáveis aplicação e cidade não podem ser alteradas e são utilizadas comoqualquer outra variável do sistema.Diferentes das constantes podemos ter variáveis que são alteradas em uma classe, mas não podemser alteradas fora da classe em que foram criadas. Para isso utilizamos a instrução readonly após adefinição da variável, como o exemplo a seguir:public readonly Aplicacao As Stringpublic readonly Cidade As StringAplicacao "Curso"Cidade "Taquaritinga"DICA: Variáveis read only só podem ser alteradas no construtor da classe em que foram criadas.www.marcelosincic.com.brReprodução e distribuição livre

Versão: 2.0www.marcelosincic.com.brPágina 15 de 453 Instruções Condicionais, Laços e Desvios3.1 Contexto de VariáveisAo utilizarmos condicionais, laços e desvios precisamos juntar o conceito de bloco com criação devariáveis.Aprendemos anteriomente que blocos são criados utilizando-se as chaves, como os exemplosanteriores de Enum, Structure e classes. Variáveis criadas dentro de um bloco só podem serutilizadas dentro do mesmo bloco. Este principio é chamado de contexto. O exemp

1 Visão Geral do Visual Basic.NET 1.1 Conceitos Básicos Antes de codificar um programa dentro do Visual Studio precisamos conhecer as regras básicas de código, conceitos de projetos e classe, utilização e manipulação de propriedades dos objetos, debug e compilaçã