Escolar Documentos
Profissional Documentos
Cultura Documentos
NET Framework
A .NET Framework define o ambiente para executar aplicaes desenvolvidas em VB .NET, C# .NET, C++ .NET, ou outras desenvolvidas para a .NET Framework. O Visual Studio .NET um pacote de produtos que permite desenvolver aplicaes nas linguagens apontadas no ponto anterior. Dois dos principais componentes da .NET Framework so: .NET Framework Class Library providencia um conjunto de classes, organizadas numa estrutura hierrquica, que podem ser utilizadas para desenvolver aplicaes .NET. As classes relacionadas so organizadas em grupos designados por namespcaces. .NET Common Language Runtime (CLR) providencia os servios necessrios (gesto de memria, execuo de cdigo, segurana, etc.) para executar aplicaes desenvolvidas numa qualquer linguagem .NET. Tambm fornece o Common Type System, que define os tipos de dados que so utilizados pelas linguagens .NET. Todas as linguagens .NET so compiladas para uma linguagem comum intermdia (IL).
Visual Basic.NET, C1 Slide 1
.NET Framework
.NET Applications
Visual Basic .NET Visual C# .NET Visual C++ .NET Other languages
Visual Basic.NET, C1
Slide 2
Visual Basic.NET, C1
Slide 3
Solution Project
Assembly
Intermediate Language (IL) Source files Class references
Visual Basic.NET, C1
Slide 4
Visual Basic.NET, C1
Slide 5
Visual Basic.NET, C1
Slide 6
Introduo programao OO
Quando se implementa um Windows Form atravs do VS .NET IDE est-se a utilizar programao OO.
Quando se inicia um projecto atravs do Windows Application Template, est-se a criar uma nova classe que herda as caractersticas da classe Form pertencente .NET Class Library. Quando se corre o formulrio, est-se a criar uma instncia dessa classe, que , portanto, um objecto.
Do mesmo modo, quando se adiciona um controlo a um formulrio, est-se a a adicionar um objecto ao formulrio. Cada controlo , ento, uma instncia de uma determinada classe. Por exemplo, um controlo TextBox um objecto que uma instncia da classe TextBox.
Visual Basic.NET, C1
Slide 7
Introduo programao OO
Uma classe representa uma estrutura de programao que define as caractersticas de um objecto. Uma classe uma abstraco do objecto e no o prprio objecto, do mesmo modo que uma planta uma abstraco de uma casa e no a prpria casa. Um objecto uma instncia da classe e representa uma unidade que combina cdigo e dados. A interface de um objecto consiste num conjunto claramente definido de propriedades, mtodos e eventos. A este conjunto d-se, comummente, o nome de membros do objecto. As propriedades representam as caractersticas de um objecto. Os mtodos representam as aces que um objecto pode realizar. Construtor (NEW) encarrega-se de preparar todo o ambiente quando o objecto criado e carregado na memria. Destrutor realiza determinadas operaes quando o objecto libertado da memria. Os eventos representam sinais aos quais os objectos podem reagir.
Visual Basic.NET, C1 Slide 8
Introduo programao OO
Herana a descrio de uma classe usando propriedades e mtodos de outra(s) classe(s). A herana acontece quando umaa classe herda caractersticas de outra classe. A classe da qual se herda chamada de classe-me ou classe base e a classe que herdou chamada de subclasse ou de classe filha. A herana pressupe que se possam alterar (override) ou excluir as propriedades ou mtodos originais, assim como incluir outros. Note-se que uma subclasse apenas herda as propriedades e mtodos da classe base, mas no herda os construtores nem os eventos da classe base. Polimorfismo a capacidade que os objectos tm de responder a uma mensagem de maneiras diferentes. Isto , atravs do conceito de polimorfismo, possvel que duas ou mais classes possam definir uma propriedade ou um mtodo com o mesmo nome, mas com diferentes implementaes. Assim, o procedimento que executado quando se refere a um membro com esse nome depende da classe que est a ser utilizada para criar o objecto. O polimorfismo um resultado natural da herana de classes.
Visual Basic.NET, C1 Slide 9
Introduo programao OO
Encapsulamento proteco que o objecto d s suas propriedades e aos seus mtodos, de modo a que nenhum agente externo tenha acesso a elas sem as solicitar. Por outras palavras, o conceito de encapsulamento torna possvel que se possam esconder alguns dados e operaes (atravs da palavra chave Private) do objecto. O conceito de encapsulamento permite que se altere o cdigo de uma classe sem afectar as outras classes que utilizam essa classe. Assim, pode-se pensar numa classe como uma caixa preta que disponibiliza propriedades e mtodos.
Visual Basic.NET, C1
Slide 10
Vamos considerar os seguintes elementos e estruturas fundamentais que so habitualmente usados em programao: Tipos de Dados Operadores Atribuies Entrada e Sada de Dados Estruturas de Controlo
Procedimentos
Visual Basic.NET, C1 Slide 11
Variveis so entidades que podem assumir diferentes valores ao longo da execuo do programa. As variveis so utilizadas para armazenar dados. Cada varivel tem associado um determinado tipo de dados.
Tipos de dados
Visual Basic.NET, C1
Slide 12
Quando um valor numrico convertido para um valor booleano, o valor zero tornase false e todos os outros valores tornam-se true. Quando um valor booleano convertido para uma valor numrico, um valor false torna-se zero e um valor true torna-se -1.
Visual Basic.NET, C1 Slide 14
DIM declara uma varivel que pode ser utilizada dentro de um procedimento ou dentro de parte desse procedimento. Isso determinado pela localizao da instruo DIM no procedimento. PRIVATE declara uma varivel que pode ser utilizada pelos procedimentos dentro de uma classe ou mdulo. PUBLIC - declara uma varivel que pode ser utilizada por todas as classes e mdulos de
um projecto.
STATIC - declara uma varivel que retm o seu valor de uma execuo de um
procedimento para a outra.
As palavras chave DIM, PRIVATE, PUBLIC STATIC determinam o mbito da varivel, isto , a parte do cdigo que pode utilizar essa varivel.
Visual Basic.NET, C1 Slide 15
Visual Basic.NET, C1
Slide 16
A sintaxe semelhante das varveis. A principal diferena reside no facto de se usar a palavra-chave Const e ainda de ser necessrio indicar, de imediato, o valor que se quer atribuir constante.
Visual Basic.NET, C1
Slide 17
' Declara uma constante Private Integer -- vlida apenas no seu contexto de declarao Private Const MeuInt As Integer = 5
As constantes declaradas num procedimento Sub, Function, ou Property so locais a esse procedimento.
Uma constante declarada fora de um procedimento definida ao longo da classe, mdulo, ou estrutura na qual declarada.
Visual Basic.NET, C1
Slide 18
+ * / \ Mod ^
Visual Basic.NET, C1
Significado Menor que Menor ou igual a Maior que Maior ou igual a Igual a Diferente de
De uma expresso envolvendo um operador relacional resulta sempre um valor (True ou False) que atesta a veracidade dessa expresso.
Visual Basic.NET, C1
Slide 21
Exemplo:
Visual Basic.NET, C1
Slide 22
num eixo de valores tal como o conhecemos da matemtica. A relao entre cadeias de caracteres (string) baseia-se na sua ordem alfanumrica.
Exemplo: -5 < 2 < 4 < 5 1 < 10 < 1006 < 184 < 2 < 30 < bom < bons Para entender melhor a ordenao alfanumrica deve-se observar o Unicode Character Set ou a tabela ASCII.
Visual Basic.NET, C1 Slide 23
Operador
NOT And OR negao
Significado
Se ambas as expresses forem true, devolve true Se uma expresso for true, devolve true
Pode-se utilizar os operadores lgicos para criar condies compostas. Estes operadores so utilizados na lgebra de Boole, isto em operaes lgicas (operaes sobre os valores verdadeiro e falso). Em VB .NET os valores lgicos so True (para verdadeiro) e False (para falso).
Visual Basic.NET, C1 Slide 24
Exemplo:
20 + 34 vale 2034 e no 54
Visual Basic.NET, C1
Slide 25
Precedncias dos Operadores Este problema pe-se quando numa expresso existem vrios operadores.
Exemplo: Sabemos da matemtica que: Sabemos da matemtica que: 2+3*4-5 equivalente aa22+ (3*4) 55 eeno a(2+3) **44--55 2+3*4-5 equivalente + (3*4) no a(2+3)
Quando quisermos construir uma expresso que envolva diferentes operadores temos de ter em ateno a tabela de precedncia dos operadores que se apresenta a seguir.
Visual Basic.NET, C1 Slide 26
Notas: Os operadores aritmticos tm sempre precedncia sobre os operadores relacionais e ambos tm precedncia sobre os operadores lgicos. Todos os operadores relacionais tm a mesma precedncia entre si. Quando estamos perante operadores com o mesmo nvel de precedncia eles devem ser considerados na ordem em que se apresentam, lendo da esquerda para a direita.
Slide 27
Visual Basic.NET, C1
Exemplo:
2*4/8/5*7 equivalente a ( ( ( 2*4 ) / 8 ) / 5 ) * 7
Quando queremos forar uma determinada ordem na considerao dos operadores de uma expresso, utilizamos parntesis.
Visual Basic.NET, C1
Slide 28
Precedncias dos Operadores As operaes dentro de parntesis devem ser sempre avaliadas antes de As operaes dentro de parntesis devem ser sempre avaliadas antes de qualquer outra operao. qualquer outra operao. Exemplo: 3 ( 4 +6 / (3 1 )) * 5 Comea por calcular 3 1 (porque o que est dentro do parntesis mais interior), de que resulta 2. De seguida Ter-se- ento que calcular 4+6/2 (de novo, o que est dentro de parntesis). Da resulta 7 (note-se que nesta expresso temos de avaliar primeiro a diviso e s depois a soma). Por fim, ficamos com 3-7*5, que resulta em 32.
Visual Basic.NET, C1 Slide 29
De nada serve efectuar uma qualquer operao se o seu resultado no for devidamente guardado numa varivel.
Assim que o valor resultante de uma operao estiver guardado numa varivel, ele pode ser utilizado em subsequentes expresses, bastando para tal invocar essa varivel.
Visual Basic.NET, C1 Slide 30
O tipo de valor resultante no lado direito da atribuio tem de ser compatvel com o tipo de dados da varivel a que o valor atribudo (lado esquerdo da atribuio).
Visual Basic.NET, C1
Slide 31
Exemplo
i += 5 i-= 6 i *= 2 i \= 2 i ^= 2 s &= mundo
Descrio
i=i+5 i = i -6 i=i*2 i=i \2 i = i ^2 s = s & mundo
Resultado
i = 18 i=7 i = 26 i=6 i = 169 Ol mundo
Visual Basic.NET, C1
Slide 32
Text mensagem de texto a apresentar. Este o nico argumento obrigatrio. Caption apresenta uma legenda na barra de ttulo da caixa de mensagem. Buttons especifica os botes que aparecem na caixa de mensagem (OK, OKCancel,
YesNo, YesNoCancel,RetryCancel, AbortRetryIgnore). Icon especifica o icon que aparece na caixa de mensagem (Information, Error, Warning, Exclamation, Question, Asterisk, Hand, Stop, None). DefaultButton especifica o boto que activado quando o utilizador pressiona a tecla Enter.
If MessageBox.Show(Deseja sair?, Sair, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then ME.Close Else txtZZZ.Focus End IF
Constantes da enumeration DialogResult: OK, Cancel, Yes, No, Abort, Ignore, None
Visual Basic.NET, C1
Slide 34
Caption apresenta uma legenda na barra de ttulo da caixa de dilogo. DefaultResponse apresenta a expresso que deve ser considerada como a resposta
predefinida, caso o utilizador no efectue nenhuma entrada de dados. Se este argumento for omitido, a caixa de texto apresentada na caixa de dilogo vai aparecer vazia.
Namespace: Microsoft.VisualBasic
Visual Basic.NET, C1 Slide 35
Estruturas de Controlo
Deciso ou Seleco
Condicionais Alternativas
If-Then-Else
O VB .NET tem diversas estruturas de controlo que podemos utilizar para controlar o fluxo de execuo dos programas
Condicionais Selectivas
Select Case
For-Next
Do-Loop
Visual Basic.NET, C1
Slide 36
Estruturas Condicionais As estruturas condicionais so utilizadas quando queremos que o comportamento de uma certa parte do programa esteja dependente de uma determinada condio. Estruturas Condicionais Alternativas Forma mais simples de estrutura condicional Condies do tipo: Se...Ento...Seno Exemplo Se chover ento vou estudar Se chover ento vou estudar, seno vou ao cinema
Visual Basic.NET, C1 Slide 37
Estruturas Condicionais
If condio Then Aco1 [ElseIf Condio Then Aco2] [Else Aco3] End If
Escolher entre duas alternativas possveis, com base numa condio booleana
Formas mais comuns If condio Then Aco1 End If If condio Then Aco1 Else Aco2 End If
Visual Basic.NET, C1
Slide 38
A A
Dim Number, Digits, MyString Number = 53' Initialize variable. If Number < 10 Then Digits = 1 ElseIf Number < 100 Then ' Condition evaluates to True so the next statement is executed. Digits = 2 Else Digits = 3 End If ' Assign a value using the single-line form of syntax. If Digits = 1 Then MyString = "One" Else MyString = "More than one"
As palavras-chave End
Portanto, a 1 condio (Number < 10) testada. Se for avaliada como false, a execuo desvia-se imediatamente para a palavra-chave ElseIf, ponto em que introduzida um nova condio de teste (Number < 100). Se a nova condio de teste for avaliada como false, a execuo desvia-se para a palavra-chave Else, e a(s) instruo(es) que est(o) antes da palavra-chave End IF (so) executada(s). Se em qualquer das condies de teste acima referidas o resultado for true, a(s) instruo(es) que est(o) a seguir e antes da palavra-chave ElseIf ou Else so executadas.
Visual Basic.NET, C1
Slide 39
Visual Basic.NET, C1
Slide 40
Case Else destina-se a indicar o que deve ser executado no caso da expresso indicada
na linha Select Case tomar um valor diferente de qualquer um dos referidos nas linhas Case. (A sua utilizao opcional)
Visual Basic.NET, C1 Slide 41
Exemplo:
This example uses the Select Case statement to evaluate the value of a variable. The second Case clause contains the value of the variable being evaluated, and therefore only the statement associated with it is executed. Dim Number Number = 8' Initialize variable. Select Case Number' Evaluate Number. Case 1 To 5' Number between 1 and 5. MsgBox "Between 1 and 5" ' The following is the only Case clause that evaluates to True. Case 6, 7, 8' Number between 6 and 8. MsgBox "Between 6 and 8" Case Is > 8 And Number < 11' Number is 9 or 10. MsgBox "Greater than 8" Case Else' Other values. MsgBox "Not between 1 and 10" End Select
Visual Basic.NET, C1
Slide 42
Visual Basic.NET, C1
Slide 43
Estruturas de Repetio
muito comum que um programa necessite de repetir um determinado conjunto de aces por um certo nmero de vezes. Conforme esse nmero de vezes seja decido no momento em que se est a codificar o programa ou dependa de cada execuo particular desse mesmo programa, optaremos pela estrutura mais adequada.
Um ciclo tem de ter uma forma qualquer de terminar (essa forma depende do tipo de ciclo). Caso contrrio teramos um ciclo infinito e a execuo do programa ficaria indefinidamente "pendurada" nesse ciclo.
Visual Basic.NET, C1 Slide 44
Sintaxe:
For varivel_de_iterao [AS Datatype] = valor_ inicial To valor_ final [Step valor_ do_passo] [aces] [Exit For] [aces] Next [varivel de iterao]
Notar que:
O ciclo For implica a utilizao de uma varivel numrica, chamada de "varivel de iterao"
(varivel_ de_ iterao), que em cada iterao toma um novo valor de acordo com o que se especificar: comea com o valor valor_ inicial e vai at valor_ final. A varivel no pode ser do tipo boolean ou do tipo array. Depois de todas aces terem sido executadas, adicionado o valor valor_ do_passo varivel varivel_de_iterao. Neste ponto, todas as aces so executadas de novo e repete-se tudo de novo at que varivel_de_iterao = valor_ final.
Visual Basic.NET, C1
Slide 45
Estruturas de repetio com pr-determinao do nmero de Iteraes Pode ser indicado um "passo" (valor do-passo) para a mudana do valor da varivel em cada nova iterao. Quando nada for indicado, assumido um passo de 1 unidade. O valor do passo pode ser positivo ou negativo. Se for positivo ento valor_ inicial tem que ser menor ou igual a valor_ final. Se for negativo ento valor_ inicial tem que ser maior ou igual a valor_ final. Entre as aces pode estar a instruo Exit For. Esta instruo fora a sada do ciclo, isto , o ciclo acaba imediatamente (em vez de continuar a iterar at a varivel de controlo atingir o valor final). O ciclo For uma Estrutura de repetio controlada por uma varivel (varivel_de_iterao ou contador).
Visual Basic.NET, C1
Slide 46
Exemplo:
This example uses the For...Next statement to create a string that contains 10 instances of the numbers 0 through 9, each string separated from the other by a single space. The outer loop uses a loop counter variable that is decremented each time through the loop. Sub CicloFor() Dim Words, Chars AS short Dim MyString as string For Words = 10 To 1 Step -1 ' Set up 10 repetitions. For Chars = 0 To 9 ' Set up 10 repetitions. MyString = MyString & Chars ' Append number to string. Next Chars ' Increment counter MyString = MyString & " " ' Append a space. Next Words MesageBox.Show (MyString = & MyString) End Sub
0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
Visual Basic.NET, C1
Slide 47
Testes no Incio
Testes no Fim Depois de cada iterao ser executada verifica-se se ainda se deve continuar o ciclo. Estes ciclos so controlados por uma condio
Visual Basic.NET, C1
Slide 48
Sintaxe:
Do [{While | Until} condio] [aces] [Exit Do] [aces] Loop Do [aces] [Exit Do] [aces] Loop [{While | Until} condio]
Ou
Repete um bloco de aces Enquanto (While) a condio for Verdadeira (True) Ou Repete um bloco de aces At (Until) a condio se tornar Verdadeira (True)
Quando a condio for Verdadeira, sai do ciclo
Se a condio for testada a seguir a Loop, em vez de a seguir a Do, o contedo do ciclo sempre executado pelo menos uma vez, mesmo que partida a condio seja falsa. No caso do teste ser feito a seguir a Do, se a condio for falsa, o contedo do ciclo no executado nenhuma vez.
Visual Basic.NET, C1
Slide 50
Exemplo:
This example shows how Do...Loop statements can be used. The inner Do...Loop statement loops 10 times, sets the value of the flag to False, and exits prematurely using the Exit Do statement. The outer loop exits immediately upon checking the value of the flag. Sub Ciclos() Dim Check As Boolean, Counter As Short Check = True: Counter = 0' Initialize variables. Do' Outer loop. Do While Counter < 20' Inner loop. Counter = Counter + 1' Increment Counter. If Counter = 10 Then' If condition is True. Check = False' Set value of flag to False. Exit Do' Exit inner loop. End If Loop Loop Until Check = False' Exit outer loop immediately. MessageBox.show( "Counter = " & Counter & "; Check = " & Check) End Sub
Sintaxe
[Private|Public] Sub nome [(lista de argumentos)] instrues [Exit Sub] [instrues] End Sub
[Private|Public] Function nome [(lista de argumentos)] [As tipo] instrues [Exit Function] {nome = expresso} | {Return expresso} [instrues] End Function
Diferenas
Function permite devolver um valor ao procedimento que a tiver chamado e Sub no tem essa capacidade.
Visual Basic.NET, C1
Slide 52
Em ambos os casos existe tambm a possibilidade de indicar a lista de argumentos com que o procedimento trabalhar.
Para que a funo devolva um determinado valor necessrio que dentro do seu cdigo se atribua esse valor ao seu nome ou que se utilize uma Instruo Return com o valor a devolver. A instruo Return provoca a sada da funo (ver help on-line sobre a instruo Return).
Visual Basic.NET, C1 Slide 53
Note-se que para chamar um procedimento Sub pode-se utilizar apenas o nome do procedimento, omitindo a palavra-chave Call. Para chamar um procedimento Function utiliza-se normalmente o nome do procedimento como parte de uma expresso numa instruo de atribuio.
Visual Basic.NET, C1 Slide 55
Exemplos:
Sub Area() Dim Comp As Decimal Dim Larg As Decimal Comp = 10 Larg = 20 Me.CalculaArea (Comp, Larg) End Sub
Sub CalculaArea( Ocomp As Decimal, Alarg As Decimal) Dim Area As Decimal ' Declara varivel local. If Ocomp = 0 Or Alarg = 0 Then Exit Sub ' Sai do Procedimento imediatamente End If Area = Ocomp * Alarg ' Calcula a rea do rectngulo. MessageBox.Show (rea = & Area) ' Mostra a rea. End Sub
200
Visual Basic.NET, C1
Slide 56
Exemplos:
Sub Multiplicar() Dim Var1 As Short A instruo em que feita uma Dim Var2 As Short atribuio ao nome da funo especifica Dim Var3 As Short o valor de retorno da funo Var1 = 5 Var2 = 10 Var3 = Multiplica(Var1, Var2) Chamada da Funo Multiplica MessageBox.Show (Var3 = & Var3) End Sub Funo que devolve o produto de dois argumentos Function Multiplica(Var1 As short, Var2 As Short) As Short Multiplica = Var1 * Var2 Definio da Funo End Function Multiplica
50
Visual Basic.NET, C1
Slide 57
Argumentos
Exemplo:
Nomedoargumento AS Tipodedadosdoargumento, Nomedoargumento AS Tipodedadosdoargumento ... Na declarao do Procedimento Sub Subtrai ( x1 As Integer, x2 As Integer) MessageBox.Show (R = , & x1 x2) End Sub
Este procedimento no pode ser executado s por si, j que s funciona se lhe forem passados dois argumentos (neste caso dois inteiros). Logo, temos de o chamar a partir de outro procedimento onde lhe possamos fornecer esses valores. Os argumentos declarados passam a funcionar, dentro do procedimento, como variveis.
Estes Valores tm de ser do mesmo Tipo do Argumento correspondente na definio do procedimento a ser chamado! Sub FazContas () Me.Subtrai (5, 6) Me.Subtrai (25,12) End Sub
Visual Basic.NET, C1
Na chamada do Procedimento
Slide 58
Argumentos Notas: Para chamar o procedimento Subtrai, indicamos uma lista de valores correspondentes a cada um dos argumentos, separados por virgulas. Uma vez concluda a execuo do procedimento Subtrai (com estes argumentos), o controlo devolvido ao procedimento Fazcontas. Depois executada a instruo seguinte chamada do procedimento Subtrai. muito importante a ordem pela qual os argumentos so passados. O primeiro argumento dado vai corresponder ao primeiro argumento recebido e assim sucessivamente. Me.Subtrai 5, 6 diferente de Me.Subtrai 6,5.
Visual Basic.NET, C1 Slide 59
No exemplo anterior apresentmos sempre constantes como argumentos. No entanto, podemos tambm apresentar variveis ou mesmo expresses, desde que o seu tipo seja compatvel com o tipo do argumento correspondente no procedimento chamado. A regra continua a ser a mesma: aquilo que for apresentado como primeiro argumento a passar vai ser usado como o primeiro argumento no procedimento chamado e assim sucessivamente.
Exemplo:
Sub FazContas () Dim x As Short, y As Short x=5 y=6 Me.Subtrai (x, y) Me.Subtrai (x + y, 2 * x) End Sub Esta chamada vai provocar a execuo do procedimento Subtrai usando o valor de x como primeiro argumento e o valor de y como o segundo argumento.
-1
Esta chamada vai provocar a execuo do procedimento Subtrai usando o valor de x + y como primeiro argumento e o valor de 2 * x como o segundo argumento.
Visual Basic.NET, C1
Slide 60
No existe qualquer relao entre o nome dos argumentos do procedimento chamado e o nome dos argumentos usados na chamada. Ou seja, o facto de termos dado os nomes x1 e x2 aos argumentos do procedimento Subtrai (na sua definio) no quer de forma alguma dizer que este procedimento s possa ser chamado com variveis que tenham esse mesmo nome! O VB encarrega-se de fazer as necessrias correspondncias. Em geral, quando se passam argumentos a um procedimento, o VB trata de adequar cada um deles aos que se encontram descritos na definio do dito procedimento. A adequao feita respeitando a sequncia em que os argumentos so representados. Assim, o primeiro argumento declarado na definio do procedimento vai tomar o valor do primeiro argumento apresentado nessa chamada do procedimento; o segundo argumento declarado na definio do procedimento vai tomar o valor do segundo argumento apresentado nessa chamada do procedimento; e assim sucessivamente para cada um dos argumentos.
Sub Exemplo ( v As Integer, msg1 As String, msg2 As String)
....
End sub
Dentro de outro procedimento
Visual Basic.NET, C1
Slide 61
Argumentos passados por valor ou por referncia Argumento passado por referncia Quando se apresenta uma varivel como argumento na chamada de um procedimento, passada uma referncia dessa varivel ao argumento correspondente no procedimento chamado. Assim, o procedimento chamado pode alterar o valor da varivel (passada como argumento) no procedimento chamante. Quando queremos indicar que um argumento deve ser passado por referncia utilizamos a palavra-chave ByRef na declarao do procedimento em causa. Argumento passado por valor Quando se apresenta uma varivel como argumento na chamada de um procedimento, passada uma cpia do valor dessa varivel ao argumento correspondente no procedimento chamado. Assim, O procedimento chamado no pode alterar o valor da varivel (passada como argumento) no procedimento chamante. Quando queremos indicar que um argumento deve ser passado por Valor utilizamos a palavra-chave ByVal na declarao do procedimento em causa.
Visual Basic.NET, C1 Slide 62
Exemplo:
Public Sub Experincia (ByRef X As Short, ByVal Y As Short) X=5 Y = 10 O Valor da varivel End Sub passada como 1 argumento pode ser alterado pelo Public Sub Teste() procedimento chamado. Dim A As Short, B As Short O Valor da varivel A=0 passada como 2 argumento B=0 no pode ser alterado pelo Experincia (A, B) MessageBox. Show( "A = " & A & "; B = " & B) procedimento chamado. End Sub
A = 5; B = 0
Visual Basic.NET, C1
Slide 63
Notas: Por defeito, O VB .NET faz as passagens de argumentos por valor ou seja, quando no se indica ByRef ou ByVal assumido ByVal. A deciso entre os dois tipos de passagem (para cada argumento) tomada aquando da definio de cada procedimento. Na chamada dos procedimentos tudo o que temos que fazer sujeitarmo-nos forma como o procedimento foi definido. Quando desejarmos que uma varivel apresentada como argumento (numa chamada) sofra alteraes dentro do procedimento chamado, temos de usar uma passagem por referncia. Quando apenas queremos passar o seu valor para o procedimento chamado, utilizamos uma passagem por valor.
Visual Basic.NET, C1
Slide 64
Pode-se utilizar um array para armazenar um grupo de itens, em vez de utilizar variveis separadas para cada item. Cada item representa um elemento do array, e o comprimento do array estabelece o nmero de elementos que o array contm. limitesuperior comea em zero. Assim, o array ir conter mais um elemento do que o valor de limitesuperior. Na declarao de um array, deve-se especificar o tipo de dados das clulas que o compem. Se for especificado o tamanho do array no momento da sua declarao, criado um objecto, a partir da classe Array, com essa dimenso. Esse objecto ento associado varivel. atribudo um valor predefinido a cada elemento do array, de acordo com o seu tipo de dados.
Visual Basic.NET, C1 Slide 66
Apesar de ter sido sempre utilizada a instruo Dim pode ser usada qualquer instruo admissvel para a declarao de variveis.
Visual Basic.NET, C1 Slide 67
Podemos pensar num array de duas dimenses como sendo uma tabela constituda por linhas e colunas. limitesuperior1 e limitesuperior2 comeam em zero e representam os limites superiores da dimenso 1 e da dimenso 2 do array, respectivamente. Um array em VB pode ter at 60 dimenses, embora raramente se trabalhe acima das 3 dimenses. tambm possvel no especificar o limitesuperior1 e o limitesuperior2 no momento da declarao do array. Todavia, tem que se manter a vrgula entre os parnteses, de modo a indicar a dimenso do array.
Visual Basic.NET, C1
Slide 69
Exemplo de declarao de um array de duas dimenses e atribuio de valores numa nica instruo:
Dim s(,) As String = {{Pedro, Sousa}, {Ana, Pinto}, {Mrio, Silva}}
Equivalente a:
Dim s(2,1) As String s(0,0) = Pedro s(0,1) = Sousa s(1,0) = Ana s(1,1) = Pinto s(2,0) = Mrio s(2,1) = Silva
Visual Basic.NET, C1 Slide 70
Para redimensionar um array, utiliza-se a instruo ReDim. Pode-se usar esta instruo para aumentar ou diminuir o nmero de elementos do array, mas no se pode utilizar para alterar o nmero de dimenses do array.
Por defeito, a instruo ReDim apaga todos os valores de um array. Se no for isso o desejado, pode-se incluir a palavra-chave Preserve. Assim, os valores existentes so preservados.
Quando se redimensiona um array, est-se a criar um novo objecto array que associado mesma varivel que o array anterior. Consequentemente, no se pode especificar o tipo de dados quando se redimensiona um array. Em vez disso, o novo array criado com o mesmo tipo de dados do array original.
Visual Basic.NET, C1 Slide 71
Dim s (2, 1) As String ReDim Preserve s (2, 2) ReDim s (3,3) preserva os valores existentes e altera o nmero de elementos do da segunda dimenso do array. altera o nmero de elementos de ambas as dimenses do array e atribu-lhes o valor predefinido Nothing.
Visual Basic.NET, C1
Slide 72