73
Visual Basic.NET, C1 Slide 1 .NET Framework A .NET Framework define o ambiente para executar aplicações 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 aplicações nas linguagens apontadas no ponto anterior. Dois dos principais componentes da .NET Framework são: .NET Framework Class Library providencia um conjunto de classes, organizadas numa estrutura hierárquica, que podem ser utilizadas para desenvolver aplicações .NET. As classes relacionadas são organizadas em grupos designados por namespcaces. .NET Common Language Runtime (CLR) – providencia os serviços necessários (gestão de memória, execução de código, segurança, etc.) para executar aplicações desenvolvidas numa qualquer linguagem .NET. Também fornece o Common Type System, que define os tipos de dados que são utilizados pelas linguagens .NET. Todas as linguagens .NET são compiladas para uma linguagem comum intermédia (IL).

No Slide Title .NET.… · Visual Basic.NET, C1 Slide 3 1. O programador utiliza o Visual Studio.NET para criar um projecto (project) que pode incluir um ou mais ficheiros VB fonte

Embed Size (px)

Citation preview

Visual Basic.NET, C1 Slide 1

.NET Framework A .NET Framework define o ambiente para executar aplicações 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 aplicações nas linguagens apontadas no ponto anterior.

Dois dos principais componentes da .NET Framework são:

.NET Framework Class Library – providencia um conjunto de classes, organizadas numa estrutura hierárquica, que podem ser utilizadas para desenvolver aplicações .NET. As classes relacionadas são organizadas em grupos designados por namespcaces.

.NET Common Language Runtime (CLR) – providencia os serviços necessários (gestão de memória, execução de código, segurança, etc.) para executar aplicações desenvolvidas numa qualquer linguagem .NET. Também fornece o Common Type System, que define os tipos de dados que são utilizados pelas linguagens .NET.

Todas as linguagens .NET são compiladas para uma linguagem comum intermédia (IL).

Visual Basic.NET, C1 Slide 2

.NET Framework

.NET Framework

.NET Applications

Visual Basic .NET Visual C# .NET Visual C++ .NET Other languages

.NET Framework Class Library

Windows Forms classes ASP.NET classes Other classes

Common Language Runtime

Managed applications Common Type System Intermediate Language

Operating System and Hardware

Windows 2000 Windows XP Other Operating Systems

Visual Basic.NET, C1 Slide 3

1. O programador utiliza o Visual Studio .NET para criar um projecto (project) que pode incluir um ou mais ficheiros VB fonte. Em alguns casos, um projecto pode conter outros tipos de ficheiros, tais como ficheiros de som, de imagem, etc..

Uma Solução (solution) contém projectos. Nas aplicações simples, uma solução contém apenas um projecto. Embora, nas aplicações mais complexas, uma solução possa conter mais do que um projecto.

2. O compilador de Visual Basic traduz o código fonte para a IL. O código nesta linguagem é armazenado no disco num assembly que também contém referências para as classes que a aplicação requer. Um assembly é um ficheiro executável que tem a extensão .exe ou .dll.

3. O assembly pode depois ser executado em qualquer PC que tenha instalado a .NET CLR. Quando o assembly é executado, a CLR converte a IL para código nativo que pode ser corrido pelo sistema operativo Windows. A CLR é também responsável pela gestão de memória, segurança, etc.

Compilação e execução de uma aplicação VB .NET

Visual Basic.NET, C1 Slide 4

Solution

.NET FrameworkVisual Studio .NET

Project

CommonLanguageRuntime

IntegratedDevelopmentEnvironment

Source files

Visual Basiccompiler

1 2 3

Assembly

Intermediate Language (IL)

Class references

Compilação e execução de uma aplicação VB .NET

Visual Basic.NET, C1 Slide 5

Uma aplicação “Windows Forms”

Visual Basic.NET, C1 Slide 6

Uma aplicação “Web Forms”

Visual Basic.NET, C1 Slide 7

Introdução à programação OO

Quando se implementa um Windows Form através do VS .NET IDE está-se a utilizar programação OO.

Quando se inicia um projecto através do Windows Application Template, está-se a criar uma nova classe que herda as características da classe Form pertencente à.NET Class Library. Quando se “corre” o formulário, está-se a criar uma instância dessa classe, que é, portanto, um objecto.

Do mesmo modo, quando se adiciona um controlo a um formulário, está-se a a adicionar um objecto ao formulário. Cada controlo é, então, uma instância de uma determinada classe. Por exemplo, um controlo TextBox é um objecto que é uma instância da classe TextBox.

• Uma classe representa uma estrutura de programação que define as características de um objecto. Uma classe é uma abstracção do objecto e não o próprio objecto, do mesmo modo que uma planta é uma abstracção de uma casa e não a própria casa.• Um objecto é uma instância da classe e representa uma unidade que combina código e dados.• A interface de um objecto consiste num conjunto claramente definido de propriedades, métodos e eventos. A este conjunto dá-se, comummente, o nome de membros do objecto.• As propriedades representam as características de um objecto.• Os métodos representam as acções que um objecto pode realizar.

Construtor (NEW) – encarrega-se de preparar todo o ambiente quando o objecto é criado e carregado na memória.Destrutor – realiza determinadas operações quando o objecto é libertado da memória.

• Os eventos representam sinais aos quais os objectos podem reagir.

Introdução à programação OO

Visual Basic.NET, C1 Slide 8

Visual Basic.NET, C1 Slide 9

• Herança – é a descrição de uma classe usando propriedades e métodos de outra(s) classe(s). A herança acontece quando umaa classe herda características de outra classe. A classe da qual se herda é chamada de classe-mãe ou classe base e a classe que herdou é chamada de subclasse ou de classe filha. A herança pressupõe que se possam alterar (override) ou excluir as propriedades ou métodos originais, assim como incluir outros. Note-se que uma subclasse apenas herda as propriedades e métodos da classe base, mas não herda os construtores nem os eventos da classe base.

• Polimorfismo – é a capacidade que os objectos têm de responder a uma mensagem de maneiras diferentes. Isto é, através do conceito de polimorfismo, é possível que duas ou mais classes possam definir uma propriedade ou um método com o mesmo nome, mas com diferentes implementações. 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 herança de classes.

Introdução à programação OO

• Encapsulamento – protecção que o objecto dá às suas propriedades e aos seus métodos, de modo a que nenhum agente externo tenha acesso a elas sem as solicitar. Por outras palavras, o conceito de encapsulamento torna possível que se possam esconder alguns dados e operações (através da palavra chave Private) do objecto. O conceito de encapsulamento permite que se altere o código 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 métodos.

Introdução à programação OO

Visual Basic.NET, C1 Slide 10

Visual Basic.NET, C1 Slide 11

Introdução à programação VB . NET

Vamos considerar os seguintes elementos e estruturas fundamentais que são habitualmente usados em programação:

• Tipos de Dados

• Operadores

• Atribuições

• Entrada e Saída de Dados

• Estruturas de Controlo

· Procedimentos

Visual Basic.NET, C1 Slide 12

Introdução à programação VB . NET

Os dados num programa podem ser utilizados sob a forma de constantes ou de variáveis:

• Constantes – são valores que se mantêm inalterados dentro de um programa;

• Variáveis – são entidades que podem assumir diferentes valores ao longo da execução do programa. As variáveis são utilizadas para armazenar dados. Cada variável tem associado um determinado tipo de dados.

Tipos de dados• Simples• Estruturados• Definidos pelo Utilizador

Visual Basic.NET, C1 Slide 13

Introdução à programação VB . NET

Tipos de dados simplesO VB, tal como a maioria das linguagens de programação de alto nível, tem definidos vários tipos de dados:

• Boolean - para valores lógicos, Verdadeiro ou Falso• Byte – um inteiro positivo de 0 a 255.• Short – um inteiro entre –32.768 e 32.767• Integer - Inteiro entre –2.147.483.648 e 2.147.483.647• Long - Inteiro entre –9.223.372.036.854.775.808 e 9.223.372.036.854.775.807 • Single - para Números reais com Precisão Simples. • Decimal - para Números reais com Precisão Dupla. • Date – para lidar com datas (entre 1 de Janeiro de 100 e 31 de Dezembro de 9999). • String – Valores alfanuméricos. • Char – para um único carácter.• Object – para referenciar objectos.

Visual Basic.NET, C1 Slide 14

Introdução à programação VB . NET

Valores predefinidos para os tipos de dados simples

• Todos os tipos de dados numéricos - 0• Boolean – False• Date – 12:00 a.m. Janeiro 1, 0001 • String ou object – Nothing• Char – valor binário 0

Se não se declarar um valor inicial para uma variável, ela vai receber um valor predefinido, de acordo com o tipo de dados que lhe estiver associado.

Quando um valor numérico é convertido para um valor booleano, o valor zero torna-se false e todos os outros valores tornam-se true. Quando um valor booleano éconvertido para uma valor numérico, um valor false torna-se zero e um valor truetorna-se -1.

Introdução à programação VB . NET Declaração de variáveis

• A associação de um tipo a uma variável é feita aquando da declaração da variável.• O tipo de uma variável condiciona os dados que ela pode conter. Assim, énecessário ter consciência do tipo de dados com que se deseja que ela venha a lidar.

Sintaxe para declarar uma variável{DIM | PRIVATE | PUBLIC | STATIC} nomedavariável AS tipodedados [= expressão]

• DIM – declara uma variável que pode ser utilizada dentro de um procedimento ou dentro de parte desse procedimento. Isso é determinado pela localização da instrução DIM no procedimento.• PRIVATE – declara uma variável que pode ser utilizada pelos procedimentos dentro de uma classe ou módulo.• PUBLIC - declara uma variável que pode ser utilizada por todas as classes e módulos de um projecto.• STATIC - declara uma variável que retém o seu valor de uma execução de um procedimento para a outra.

As palavras chave DIM, PRIVATE, PUBLIC STATIC determinam o âmbito da variável, isto é, a parte do código que pode utilizar essa variável.

Visual Basic.NET, C1 Slide 15

Visual Basic.NET, C1 Slide 16

Introdução à programação VB . NET

Exemplo de declaração de variáveis

Dim x, y AS Integer

Dim x AS Integer , y AS Integer

Dim z AS String , y AS Integer

Se não for especificado um valor inicial para a variável, é considerado o valor predefinido para o tipo de dados associado à variável.

Visual Basic.NET, C1 Slide 17

Introdução à programação VB . NET Declaração de constantes

Sem grande rigor, podemos dizer que as constantes são variáveis globais às quais édado um valor inicial não alterável.

Em todo o código é sempre usado o nome da constante (e não o valor em si), pelo que se desejarmos alterar essa configuração, basta alterar o valor dado na declaração da constante.

Sintaxe básica de declaração de constantes:

[{ Public | Private }] Const nomedaconstante As tipodadoscons = valor[{ Public | Private }] Const nomedaconstante As tipodadoscons = valor

A sintaxe é semelhante à das varáveis. A principal diferença reside no facto de se usar a palavra-chave Const e ainda de ser necessário indicar, de imediato, o valor que se quer atribuir à constante.

Visual Basic.NET, C1 Slide 18

Introdução à programação VB . NET

Exemplos de declaração de constantes

' Declara uma cosntante Public StringPublic Const MinhaString As String = "HELP"

' Declara uma constante Private Integer -- válida apenas no seu contexto de declaraçãoPrivate Const MeuInt As Integer = 5

As constantes declaradas num procedimento Sub, Function, ou Property são locais a esse procedimento.

Uma constante declarada fora de um procedimento é definida ao longo da classe, módulo, ou estrutura na qual é declarada.

Visual Basic.NET, C1 Slide 19

Introdução à programação VB . NET

Declaração de EnumerationsUma Enumeration representa um conjunto de constantes relacionadas.

As enumerations definidas pelo VB .NET são comummente utilizadas para definir valores de propriedades de objectos, entre outras coisas.

Sintaxe básica de declaração de enumerations:

[Public | Private] Enum nomedaenumeration [As tipodadosenumeration]

Nomedaconstante1 [= valor][Nomedaconstante2 [= valor]]..

End Enum

[Public | Private] Enum nomedaenumeration [As tipodadosenumeration]

Nomedaconstante1 [= valor][Nomedaconstante2 [= valor]]..

End Enum

Para mostrar a lista das constantes de uma enumeration na janela de edição de código, deve-se escrever o nome da enumeration, seguido do operador “.”.

Visual Basic.NET, C1 Slide 20

Introdução à programação VB . NET

Operadores

Em VB . NET, dispomos essencialmente de 4 tipos de operadores: aritméticos, relacionais, lógicos e para cadeias de caracteres.

Operadores Aritméticos

São utilizados para levar a cabo cálculos matemáticos

Operador Significado Exemplo

+ Adição 2 + 2 = 4

- Subtracção 2 - 2 = 0

* Multiplicação 2 * 2 = 4

/ Divisão 17 / 5 = 3,4

\ Parte inteira da divisão

17 \ 5 = 3

Mod Resto da divisão inteira

17 Mod 5 = 2

^ Exponenciação 2 ^ 3 = 8

Visual Basic.NET, C1 Slide 21

Introdução à programação VB . NET

Operadores relacionais

São utilizados para comparar valores

Operador Significado

< Menor que

<= Menor ou igual a

> Maior que

>= Maior ou igual a

= Igual a

<> Diferente de De uma expressão envolvendo um operador relacional resulta sempre um valor (True ou False) que atesta a veracidade dessa expressão.

Visual Basic.NET, C1 Slide 22

Introdução à programação VB . NET

Exemplo:

A interpretação da relação entre valores depende do seu tipo de dados.

5 < 4Vale False

Visual Basic.NET, C1 Slide 23

Introdução à programação VB . NET

Operadores Aritméticos

• A relação entre valores numéricos baseia-se na sua ordem quando dispostos num eixo de valores tal como o conhecemos da matemática.

• A relação entre cadeias de caracteres (string) baseia-se na sua ordem alfanumérica.

Exemplo:

-5 < 2 < 4 < 5

“1” < “10” < “1006” < “184” < “2” < “30” < “bom” < “bons”

Para entender melhor a ordenação alfanumérica deve-se observar o UnicodeCharacter Set ou a tabela ASCII.

Visual Basic.NET, C1 Slide 24

Operadores lógicos comuns

Introdução à programação VB . NET

Operador SignificadoNOT negação

And Se ambas as expressões forem true, devolve true

OR Se uma expressão for true, devolve true

Pode-se utilizar os operadores lógicos para criar condições compostas.

Estes operadores são utilizados na álgebra de Boole, isto é em operações lógicas (operações sobre os valores verdadeiro e falso).

Em VB .NET os valores lógicos são True (para verdadeiro) e False (para falso).

Operadores para cadeias de Caracteres

• A concatenação de duas cadeias de caracteres é a operação que as junta numa única cadeia.

Introdução à programação VB . NET

Operador Significado Exemplo

& Concatenação “bom ” & “dia” vale “bom dia”

+ Concatenação “bom ” + “dia” vale “bom dia”

Exemplo:

“20” + “34” vale “2034”

e não “54”

Visual Basic.NET, C1 Slide 25

Visual Basic.NET, C1 Slide 26

Introdução à programação VB . NET

Precedências dos Operadores

• Este problema põe-se quando numa expressão existem vários operadores.

Exemplo:

Sabemos da matemática que:

2+3*4-5 é equivalente a 2 + (3*4) – 5 e não a(2+3) * 4 - 5

Sabemos da matemática que:

2+3*4-5 é equivalente a 2 + (3*4) – 5 e não a(2+3) * 4 - 5

Quando quisermos construir uma expressão que envolva diferentes operadores temos de ter em atenção a tabela de precedência dos operadores que se apresenta a seguir.

Visual Basic.NET, C1 Slide 27

Introdução à programação VB . NET

Precedências dos Operadores

Tabela de Precedências dos Operadores^

- (sinal negativo)*, /

\Mod+, -&

=, <>, <, >, <=, >=, Like, IsNotAndOrXor

Notas:

• Os operadores aritméticos têm sempre precedência sobre os operadores relacionais e ambos têm precedência sobre os operadores lógicos.

• Todos os operadores relacionais têm a mesma precedência entre si.

• Quando estamos perante operadores com o mesmo nível de precedência eles devem ser considerados na ordem em que se apresentam, lendo da esquerda para a direita.

Visual Basic.NET, C1 Slide 28

Introdução à programação VB . NET

Exemplo:

2 * 4 / 8 / 5 * 7

é equivalente a

( ( ( 2*4 ) / 8 ) / 5 ) * 7

Quando queremos forçar uma determinada ordem na consideração dos operadores de uma expressão, utilizamos parêntesis.

Visual Basic.NET, C1 Slide 29

Introdução à programação VB . NET

Precedências dos Operadores

As operações dentro de parêntesis devem ser sempre avaliadas antes de qualquer outra operação.

As operações dentro de parêntesis devem ser sempre avaliadas antes de qualquer outra operação.

Exemplo:

3 – ( 4 +6 / (3 –1 )) * 5

Começa por calcular 3 – 1 (porque é o que está dentro do parêntesis mais interior), de que resulta 2. De seguida Ter-se-á então que calcular 4+6/2 (de novo, é o que está dentro de parêntesis). Daí resulta 7 (note-se que nesta expressão temos de avaliar primeiro a divisão e só depois a soma). Por fim, ficamos com 3-7*5, que resulta em –32.

Visual Basic.NET, C1 Slide 30

Introdução à programação VB . NET

Instruções de atribuição

De nada serve efectuar uma qualquer operação se o seu resultado não for devidamente guardado numa variável.

Para isso temos as atribuições

Assim que o valor resultante de uma operação estiver guardado numa variável, ele pode ser utilizado em subsequentes expressões, bastando para tal invocar essa variável.

Visual Basic.NET, C1 Slide 31

Introdução à programação VB . NET

Exemplos:

a = 4 + 5

b = 2 * a + 1

O tipo de valor resultante no lado direito da atribuição tem de ser compatível com o tipo de dados da variável a que o valor éatribuído (lado esquerdo da atribuição).

Visual Basic.NET, C1 Slide 32

Introdução à programação VB . NET

O VB . NET disponibiliza vários operadores de atribuição, para além do comum operador sinal de igual (=).

Exemplos (assuma-se i = 13 e s = “Olá”):

Operador Exemplo Descrição Resultado

+= i += 5 i = i + 5 i = 18

-= i-= 6 i = i -6 i = 7

*= i *= 2 i = i * 2 i = 26

\= i \= 2 i = i \ 2 i = 6

^= i ^= 2 i = i ^2 i = 169

&= s &= “ mundo” s = s & “ mundo” “Olá mundo”

Visual Basic.NET, C1 Slide 33

Introdução à programação VB . NET Saída de dadosEm VB .NET pode-se utilizar o método Show da classe MessageBox para apresentar uma caixa de texto ao utilizador.

Sintaxe básica do método Show da classe MessageBox:

MessageBox.Show (Text [, Caption [, Buttons [, Icon [, DefaultButton]]]])MessageBox.Show (Text [, Caption [, Buttons [, Icon [, DefaultButton]]]])

• Text – mensagem de texto a apresentar. Este é o único argumento obrigatório.• Caption – apresenta uma legenda na barra de título da caixa de mensagem.• Buttons – especifica os botões 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 botão que é activado quando o utilizador pressiona a tecla Enter.

Em VB .NET pode-se apenas mostrar três botões numa caixa de mensagem.

Visual Basic.NET, C1 Slide 34

Exemplo de saída de dados

If MessageBox.Show(“Deseja sair?”, “Sair”, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then

ME.CloseElse

txtZZZ.FocusEnd IF

Constantes da enumeration DialogResult:

• OK, Cancel, Yes, No, Abort, Ignore, None

Visual Basic.NET, C1 Slide 35

Entrada de dados

Introdução à programação VB . NET

Em VB a função InputBox apresenta uma mensagem numa caixa de diálogo, espera por uma entrada de dados do utilizador e devolve uma string.

Sintaxe básica da função InputBox:

InputBox (Text [, Caption] [, DefaultResponse])InputBox (Text [, Caption] [, DefaultResponse])

• Text – mensagem de texto a apresentar na caixa de diálogo. Este é o único argumento obrigatório.

• Caption – apresenta uma legenda na barra de título da caixa de diálogo.

• DefaultResponse – apresenta a expressão que deve ser considerada como a resposta predefinida, caso o utilizador não efectue nenhuma entrada de dados. Se este argumento for omitido, a caixa de texto apresentada na caixa de diálogo vai aparecer vazia.

Namespace: Microsoft.VisualBasic

Visual Basic.NET, C1 Slide 36

Introdução à programação VB . NET

Estruturas de Controlo

O VB .NET tem diversas estruturas de controlo que podemos utilizar para controlar o fluxo de execução dos programas

Decisão ou Selecção

Repetição

Condicionais Alternativas

Condicionais Selectivas

If-Then-Else

Select Case

Com Contador

Com base numa Condição

For-Next

Do-Loop

Visual Basic.NET, C1 Slide 37

Introdução à programação VB . NET

Estruturas Condicionais

As estruturas condicionais são utilizadas quando queremos que o comportamento de uma certa parte do programa esteja dependente de uma determinada condição.

Estruturas Condicionais Alternativas

• Forma mais simples de estrutura condicional

• Condições do tipo:

Se...Então...Senão

• Exemplo

• “Se chover então vou estudar”

• “Se chover então vou estudar, senão vou ao cinema”

Visual Basic.NET, C1 Slide 38

Introdução à programação VB . NET

Estruturas Condicionais

If condição ThenAcção1[ElseIf Condição ThenAcção2]…[ElseAcção3]End If

If condição ThenAcção1End If

If condição ThenAcção1ElseAcção2End If

1ª linha termina com Then

No fim tem que se colocar End If

Formas mais comuns

Escolher entre duas alternativas possíveis, com base numa condição booleana

Visual Basic.NET, C1 Slide 39

Introdução à programação VB . NET Exemplo: This example shows both the block and single-line forms of theIf...Then...Else statement.

Dim Number, Digits, MyStringNumber = 53' Initialize variable.If Number < 10 ThenDigits = 1ElseIf Number < 100 Then' Condition evaluates to True so the next statement is executed.Digits = 2ElseDigits = 3End If

' Assign a value using the single-line form of syntax.If Digits = 1 Then MyString = "One" Else MyString = "More than one"

• A palavra-chave If indica o início de uma instrução If-Then-Else

• A palavra-chave Then indica o final de uma condição de teste

• A palavra-chave ElseIf fornece uma condição de teste alternativa se a condição de teste anterior for avaliada como false.

• A palavra-chave Else indica onde a execução deve parar se a condição de teste for avaliada como true e onde a execução deve começar se a condição de teste for avaliada como false

• As palavras-chave End If indicam o final da estrutura de controle If-Then-Else

Portanto, a 1ª condição (Number < 10) é testada. Se for avaliada como false, a execução desvia-se imediatamente para a palavra-chave ElseIf, ponto em que é introduzida um nova condição de teste (Number < 100). Se a nova condição de teste for avaliada como false, a execução desvia-se para a palavra-chave Else, e a(s) instrução(ões) que está(ão) antes da palavra-chave End IF é(são) executada(s). Se em qualquer das condições de teste acima referidas o resultado for true, a(s) instrução(ões) que está(ão) a seguir e antes da palavra-chave ElseIf ou Else são executadas.

Visual Basic.NET, C1 Slide 40

Introdução à programação VB . NET

Estruturas Condicionais Selectivas

• Estas estruturas permitem-nos codificar condições mais complexas.

• Alteram o fluxo de execução para um dos diversos segmentos de código possíveis, dependendo do valor da variável ou da avaliação de uma expressão

• Sintaxe:

Select Case expressão[Case lista de expressõesAcções] …

[Case ElseAcções] End Select

Visual Basic.NET, C1 Slide 41

Introdução à programação VB . NET Em que: • A “lista de expressões” indicada em cada linha iniciada por Case pode ter uma das seguintes formas:

• Expressão – qualquer coisa da qual resulte um valor. Por exemplo: 10, “amarelo”ou i + 5, etc...• Expressão To Expressão – permite a especificação de uma gama de valores. Por exemplo: 5 To 10, “E” To “G”, etc...• Is operador_relacional Expressão – permite indicar todos os valores que gozam de uma determinada relação (ditada pelo operador relacional) com a expressão dada. Por exemplo: Is >= 10

• Pode-se combinar estas várias hipóteses, separando-as por vírgulas. Por exemplo: Case Is < 0, Is > 100, 4 To 9, 11 To 16, 19

Indicaria todos os valores negativos ou maiores que 100, os valores entre 4 e 9, os valores entre 11 e 16 e ainda o valor 19

• Case Else destina-se a indicar o que deve ser executado no caso da expressão indicada na linha Select Case tomar um valor diferente de qualquer um dos referidos nas linhas Case. (A sua utilização é opcional)

Visual Basic.NET, C1 Slide 42

Introdução à programação VB . NET

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 NumberNumber = 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 43

Introdução à programação VB . NET

Exemplo:

• As palavras-chave Select Case indicam o início de uma estrutura de controle Select case

• Se a expressão que segue a palavra-chave Case se adequar à expressão de teste, a execução desvia-se para o segmento de código que se inicia na linha seguinte àpalavra-chave Case, e continua até que seja encontrada outra instrução Case ou Case Else ou End Select. Depois a execução desvia-se para a instrução End Select

• A palavra-chave Case Else é avaliada como true se todas as demais expressões Case forem avaliadas como false

• As palavras-chave End Select indicam o final da estrutura de controle SelectCase

Se existir mais do que uma linha Case cuja expressão se adeqúe à expressão da linha SelectCase, apenas serão executadas as acções correspondentes à primeira dessas linhas Case.

Visual Basic.NET, C1 Slide 44

Introdução à programação VB . NET

Estruturas de Repetição É muito comum que um programa necessite de repetir um determinado conjunto de acções por um certo número de vezes. Conforme esse número de vezes seja decido no momento em que se está a codificar o programa ou dependa de cada execução particular desse mesmo programa, optaremos pela estrutura mais adequada.

• Chama-se iteração a cada “volta” que se dá• Chama-se ciclo à estrutura em siExemplo:

Se considerarmos que um carrossel dá sempre exactamente 10 voltas, podemos compará-lo a um ciclo com pré-determinação do número de iterações (antes de começar já se sabe quantas voltas vai dar). Se considerarmos que o carrossel gira até que a primeira pessoa se sinta mal disposta, podemos compará-lo com um ciclo sem pré-determinação do número de iterações (o número de vezes que vai rodar vai depender de como as coisas correrem durante a execução).

Um ciclo tem de ter uma forma qualquer de terminar (essa forma depende do tipo de ciclo). Caso contrário teríamos um ciclo infinito e a execução do programa ficaria indefinidamente "pendurada" nesse ciclo.

Visual Basic.NET, C1 Slide 45

Introdução à programação VB . NET

Estruturas de repetição com pré-determinação do número de Iterações

Esta é a estrutura mais adequada quando queremos pré-determinar o número de iterações que o ciclo vai executar. Em linguagem corrente equivale (por exemplo) a dizer: "por 10 vezes, girar o carrossel"

Sintaxe:For variável_de_iteração [AS Datatype] = valor_ inicial To valor_ final [Step valor_ do_passo][acções] [Exit For][acções]Next [variável de iteração]

Notar que:

• O ciclo For implica a utilização de uma variável numérica, chamada de "variável de iteração" (variável_ de_ iteração), que em cada iteração toma um novo valor de acordo com o que se especificar: começa com o valor valor_ inicial e vai até valor_ final. A variável não pode ser do tipo boolean ou do tipo array. Depois de todas acções terem sido executadas, é adicionado o valor valor_ do_passo à variável variável_de_iteração. Neste ponto, todas as acções são executadas de novo e repete-se tudo de novo até que variável_de_iteração = valor_ final.

Visual Basic.NET, C1 Slide 46

Introdução à programação VB . NET

Estruturas de repetição com pré-determinação do número de Iterações

• Pode ser indicado um "passo" (valor do-passo) para a mudança do valor da variável em cada nova iteração. Quando nada for indicado, é assumido um passo de 1 unidade. O valor do passo pode ser positivo ou negativo. Se for positivo então valor_ inicial tem que ser menor ou igual a valor_ final. Se for negativo então valor_ inicial tem que ser maior ou igual a valor_ final.

• Entre as acções pode estar a instrução Exit For. Esta instrução força a saída do ciclo, isto é, o ciclo acaba imediatamente (em vez de continuar a iterar até a variável de controlo atingir o valor final).

• O ciclo For é uma Estrutura de repetição controlada por uma variável (variável_de_iteração ou contador).

Visual Basic.NET, C1 Slide 47

Introdução à programação VB . NET

Exemplo:

This example uses the For...Next statement to create a string that contains 10 instances of the numbers 0 through 9, each stringseparated from the other by a single space. The outer loop uses a loop counter variable that is decremented each time through theloop.

Sub CicloFor()

Dim Words, Chars AS shortDim MyString as stringFor 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 counterMyString = MyString & " " ' Append a space.

Next WordsMesageBox.Show (“MyString = ” & MyString)

End Sub

0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789

Visual Basic.NET, C1 Slide 48

Introdução à programação VB . NET

Estruturas de repetição sem pré-determinação do número de iterações O VB fornece-nos uma estrutura extraordinariamente flexível para a codificação deste tipo de ciclos. Podemos codificar directamente expressões como: "até que...fazer qualquer coisa", “enquanto...fazer qualquer coisa", "fazer qualquer coisa até que...", “fazer qualquer coisa enquanto...”, etc.

Testes no Início

Antes de cada iteração verifica-se

se ela ainda deve ser executada.

Testes no Fim

Depois de cada iteração ser executada verifica-se se ainda se deve continuar o ciclo.

Estes ciclos são controlados por uma condição

O ciclo pode não ser executado nenhuma vez

O ciclo é executado pelo menos uma vez

Visual Basic.NET, C1 Slide 49

Introdução à programação VB . NET

Sintaxe:Do [{While | Until} condição][acções][Exit Do][acções]Loop

Do[acções][Exit Do][acções]Loop [{While | Until} condição]

Ou

Quando a condição for Falsa, sai do ciclo

• Repete um bloco de acções Enquanto (While) a condição for Verdadeira (True)Ou

• Repete um bloco de acções Até (Until) a condição se tornar Verdadeira (True)Quando a condição for Verdadeira, sai do ciclo

• Condição – Expressão numérica ou String que é Verdadeira ou Falsa. É opcional. Se a condição for Null, então é tratada como falsa.• Entre as acções pode estar a instrução Exit Do. Esta instrução força a saída do ciclo.

Visual Basic.NET, C1 Slide 50

Introdução à programação VB . NET

Estruturas de repetição sem pré-determinação do número de iterações

Se a condição for testada a seguir a Loop, em vez de a seguir a Do, o conteúdo do ciclo é sempre executado pelo menos uma vez, mesmo que à partida a condição seja falsa. No caso do teste ser feito a seguir a Do, se a condição for falsa, o conteúdo do ciclo não é executado nenhuma vez.

Visual Basic.NET, C1 Slide 51

Introdução à programação VB . NET

Exemplo:This example shows how Do...Loop statements can be used. The inner Do...Loop statement loops 10 times, sets the value ofthe flag to False, and exits prematurely using the Exit Do statement. The outer loop exits immediately upon checking thevalue of the flag.

Sub Ciclos()Dim Check As Boolean, Counter As ShortCheck = 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 IfLoopLoop Until Check = False' Exit outer loop immediately.MessageBox.show( "Counter = " & Counter & "; Check = " & Check)

End Sub

Counter = 10; Check = False

Visual Basic.NET, C1 Slide 52

Introdução à programação VB . NET Procedimentos GeraisSub ou Function

[Private|Public] Function nome [(lista de argumentos)] [As tipo]instruções[Exit Function] {nome = expressão} | {Return expressão} [instruções]

End Function

Têm que ser do mesmo tipo!

Em VB, quando precisamos de escrever um procedimento geral temos duas opções: escrever um Sub ou uma Function

[Private|Public] Sub nome [(lista de argumentos)] instruções[Exit Sub][instruções]End Sub

Sintaxe

• Function permite devolver um valor ao procedimento que a tiver chamado e Sub não tem essa capacidade.

Tipo de dados do valor a devolver.

Diferenças

Visual Basic.NET, C1 Slide 53

Introdução à programação VB . NET Procedimentos Gerais Sub ou Function

Notas:

• Em ambos os casos o código é incluso entre uma primeira linha que descreve o procedimento (Sub ou Function) e uma linha final que indica o fim do procedimento (End Sub ou End Function).

• Em ambos os casos existe também a possibilidade de indicar a lista de argumentos com que o procedimento trabalhará.

• Para que a função devolva um determinado valor é necessário que dentro do seu código se atribua esse valor ao seu nome ou que se utilize uma Instrução Return com o valor a devolver. A instrução Return provoca a saída da função (ver help on-line sobre a instrução Return).

Visual Basic.NET, C1 Slide 54

Introdução à programação VB . NET Definição Versus Chamadas

Um procedimento Sub representa uma série de instruções Visual Basicdelimitada por instruções Sub e End Sub, que efectuam acções mas não devolvem um valor. Um procedimento Sub pode aceitar argumentos

Um procedimento Function representa uma série de instruções Visual Basicdelimitada pelas instruções Function e End Function. Um procedimento Function é idêntico a um procedimento Sub, mas uma função pode devolver um valor. Um procedimento Function pode aceitar argumentos.

A definição de um procedimento representa o código que descreve aquilo que ocorre quando o procedimento for executado, ou seja, quando for chamado.

A chamada de um procedimento é um pedido para que o procedimento seja executado, isto é, para que o controlo passe para o código que constitui a definição do procedimento. A chamada pode envolver a passagem de parâmetros e eventualmente a devolução de um valor (no caso das funções).

Visual Basic.NET, C1 Slide 55

Introdução à programação VB . NET Recomendações para efectuar a Chamada de um procedimento:

Quando o procedimento Sub não está na mesma classe ou módulo que a instrução de chamada, utiliza-se a palavra-chave Call seguida pelo nome do procedimento.

Quando o procedimento Sub está na mesma classe ou módulo que a instrução de chamada, omite-se a palavra-chave Call e utiliza-se a palavra-chave Meseguida de “.” nome do procedimento.

Sintaxe da instrução Call:

[Call] nomedoprocedimentoSub [(listadeargumentos)][Call] nomedoprocedimentoSub [(listadeargumentos)]

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 expressão numa instrução de atribuição.

Visual Basic.NET, C1 Slide 56

Introdução à programação VB . NET

Exemplos:

Sub Area()Dim Comp As DecimalDim Larg As DecimalComp = 10Larg = 20Me.CalculaArea (Comp, Larg) 'Chamada do Procedimento CalculaArea

End Sub

Sub CalculaArea( Ocomp As Decimal, Alarg As Decimal)Dim Area As Decimal ' Declara variável local.If Ocomp = 0 Or Alarg = 0 Then

Exit Sub ' Sai do Procedimento imediatamenteEnd IfArea = Ocomp * Alarg ' Calcula a área do rectângulo.MessageBox.Show (“Área = ” & Area) ' Mostra a área.

End Sub

Definição do Procedimento CalculaArea

200

Visual Basic.NET, C1 Slide 57

Introdução à programação VB . NET

Exemplos:

Sub Multiplicar()Dim Var1 As ShortDim Var2 As ShortDim Var3 As ShortVar1 = 5Var2 = 10Var3 = Multiplica(Var1, Var2) ‘Chamada da Função MultiplicaMessageBox.Show (“Var3 = “ & Var3)

End Sub

Function Multiplica(Var1 As short, Var2 As Short) As ShortMultiplica = Var1 * Var2

End Function Definição da Função Multiplica

A instrução em que é feita uma atribuição ao nome da função especifica o valor de retorno da função

Função que devolve o produto de dois argumentos

50

Visual Basic.NET, C1 Slide 58

Introdução à programação VB . NET

Argumentos

Exemplo:Sub Subtrai ( x1 As Integer, x2 As Integer)

MessageBox.Show (“R = “, & x1 – x2)End Sub

Nomedoargumento AS Tipodedadosdoargumento, Nomedoargumento AS Tipodedadosdoargumento ...

Na declaração do Procedimento

Sub FazContas ()

Me.Subtrai (5, 6)

Me.Subtrai (25,12)

End Sub

Estes Valores têm de ser do mesmo Tipo do Argumento correspondente na definição do procedimento a ser chamado!

• Este procedimento não 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 variáveis.

Na chamada do Procedimento

Visual Basic.NET, C1 Slide 59

Introdução à programação VB . NET

Argumentos

Notas:

• Para chamar o procedimento Subtrai, indicamos uma lista de valores correspondentes a cada um dos argumentos, separados por virgulas.

• Uma vez concluída a execução do procedimento Subtrai (com estes argumentos), o controlo é devolvido ao procedimento Fazcontas. Depois éexecutada a instrução seguinte à chamada do procedimento Subtrai.

• É muito importante a ordem pela qual os argumentos são 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 60

Introdução à programação VB . NET

No exemplo anterior apresentámos sempre constantes como argumentos. No entanto, podemos também apresentar variáveis ou mesmo expressões, desde que o seu tipo seja compatível 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.

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 execução do procedimento Subtrai usando o valor de xcomo primeiro argumento e ovalor de y como o segundo argumento.

Esta chamada vai provocar a execução do procedimento Subtrai usando o valor de x + y como primeiro argumento e o valor de 2 * x como o segundo argumento.

-1

1

Exemplo:

Visual Basic.NET, C1 Slide 61

Introdução à programação VB . NET

Não existe qualquer relação 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 definição) não quer de forma alguma dizer que este procedimento só possa ser chamado com variáveis que tenham esse mesmo nome! O VB encarrega-se de fazer as necessárias correspondências.

Em geral, quando se passam argumentos a um procedimento, o VB trata de adequar cada um deles aos que se encontram descritos na definição do dito procedimento. A adequação é feita respeitando a sequência em que os argumentos são representados. Assim, o primeiro argumento declarado na definição do procedimento vai tomar o valor do primeiro argumento apresentado nessa chamada do procedimento; o segundo argumento declarado na definição 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 procedimentoS = “Olá”Me.Exemplo (3, “s”, “Bom dia”)

Visual Basic.NET, C1 Slide 62

Introdução à programação VB . NET

Argumentos passados por valor ou por referência

• Argumento passado por referência Quando se apresenta uma variável como argumento na chamada de um procedimento, é passada uma referênciadessa variável ao argumento correspondente no procedimento chamado. Assim, o procedimento chamado pode alterar o valor da variável (passada como argumento) no procedimento chamante. Quando queremos indicar que um argumento deve ser passado por referência utilizamos a palavra-chave ByRefna declaração do procedimento em causa.

• Argumento passado por valor Quando se apresenta uma variável como argumento na chamada de um procedimento, é passada uma cópia do valor dessa variável ao argumento correspondente no procedimento chamado. Assim, O procedimento chamado não pode alterar o valor da variável (passada como argumento) no procedimento chamante. Quando queremos indicar que um argumento deve ser passado por Valor utilizamos a palavra-chave ByVal na declaração do procedimento em causa.

Visual Basic.NET, C1 Slide 63

Introdução à programação VB . NET

Exemplo:

Public Sub Experiência (ByRef X As Short, ByVal Y As Short)X = 5Y = 10

End Sub

Public Sub Teste()Dim A As Short, B As ShortA = 0B = 0 Experiência (A, B)MessageBox. Show( "A = " & A & "; B = " & B)

End Sub

• O Valor da variável passada como 1º argumento pode ser alterado pelo procedimento chamado. • O Valor da variável passada como 2º argumento não pode ser alterado pelo procedimento chamado.

A = 5; B = 0

Visual Basic.NET, C1 Slide 64

Introdução à programação VB . NET

Notas:

• Por defeito, O VB .NET faz as passagens de argumentos por valor ou seja, quando não se indica ByRef ou ByVal é assumido ByVal.

• A decisão entre os dois tipos de passagem (para cada argumento) é tomada aquando da definição 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 variável apresentada como argumento (numa chamada) sofra alterações dentro do procedimento chamado, temos de usar uma passagem por referência. Quando apenas queremos passar o seu valor para o procedimento chamado, utilizamos uma passagem por valor.

Visual Basic.NET, C1 Slide 65

Introdução à programação VB . NET

Exemplo completo:Public Sub Experiência(ByRef X As Short, ByVal Y As Short)

MessageBox.Show("Xini = " & X)MessageBox.Show("Yini = " & Y)X = 5Y = 10MessageBox.Show ("Xfin= " & X)MessgeBox.Show ("Yfin = " & Y)

End Sub

Public Sub Teste()Dim A As Short, B As ShortA = 0B = 0MessgeBox.Show ("Aini = " & A)MessageBox.Show ("Bini = " & B)Me.Experiência (A, B)MessageBox.Show ("Afin = " & A & "; Bfin = " & B)

End Sub

Visual Basic.NET, C1 Slide 66

Introdução à programação VB . NET

Sintaxe de declaração de um array unidimensional:

Dim nomedoarray (limitesuperior) As TipodedadosDim nomedoarray (limitesuperior) As Tipodedados

• Pode-se utilizar um array para armazenar um grupo de itens, em vez de utilizar variáveis separadas para cada item. Cada item representa um elemento do array, e o comprimento do array estabelece o número de elementos que o array contém.

• limitesuperior começa em zero. Assim, o array irá conter mais um elemento do que o valor de limitesuperior.

• Na declaração de um array, deve-se especificar o tipo de dados das células que o compõem.

• Se for especificado o tamanho do array no momento da sua declaração, é criado um objecto, a partir da classe Array, com essa dimensão. Esse objecto é então associado à variável. É atribuído um valor predefinido a cada elemento do array, de acordo com o seu tipo de dados.

Introdução à programação VB . NET • Uma variável array contém uma referência para o objecto array que lhe estáassociado e não os valores reais do array.

• Se não for especificado o tamanho do array no momento da sua declaração, não écriado um objecto a partir da classe Array. Isto é, a variável irá conter o valor Nothing. Depois, deve-se utilizar a instrução ReDim para criar um objecto arraycom um tamanho apropriado.

Exemplos de declaração de array unidimensionais:

• Dim a (11) As Integer ‘índices de 0 a 11 (12 elementos – todos com o valor predef. 0)

• Dim b (49) As String ‘índices de 0 a 49 (50 elementos)

• Dim c (49) As Livro ‘um array que contém 50 objectos Livro

• Dim d () As Decimal ‘um array sem declaração do seu tamanho

Apesar de ter sido sempre utilizada a instrução Dim pode ser usada qualquer instrução admissível para a declaração de variáveis.

Visual Basic.NET, C1 Slide 67

Visual Basic.NET, C1 Slide 68

Introdução à programação VB . NET Atribuição de valores às celulas de um array unidimensional:

Sintaxe:

nomedoarray(índice) = valor

• índice: de 0 até limitesuperior. O índice zero (0) identifica o primeiro elemento do array.

Sintaxe de declaração de um array unidimensional e atribuição de valores numa única instrução:

Dim nomedoarray () As Tipodedados = {valor1, valor2, valor3, …}

Exemplo:

Dim a() As Short = {2, 4, 6, 8}

• Quando se atribuem valores aos elementos de um array no momento da sua declaração, não se especifica o seu limitesuperior. O tamanho do array édeterminado pelos número de valores especificados.

Visual Basic.NET, C1 Slide 69

Introdução à programação VB . NET

Sintaxe básica de declaração de um array de duas dimensões:

Dim nomedoarray (limitesuperior1, limitesuperior2) As TipodedadosDim nomedoarray (limitesuperior1, limitesuperior2) As Tipodedados

• Podemos pensar num array de duas dimensões como sendo uma tabela constituída por linhas e colunas.

• limitesuperior1 e limitesuperior2 começam em zero e representam os limites superiores da dimensão 1 e da dimensão 2 do array, respectivamente.

• Um array em VB pode ter até 60 dimensões, embora raramente se trabalhe acima das 3 dimensões.

• É também possível não especificar o limitesuperior1 e o limitesuperior2 no momento da declaração do array. Todavia, tem que se manter a vírgula entre os parênteses, de modo a indicar a dimensão do array.

Visual Basic.NET, C1 Slide 70

Exemplos de declaração de arrays de duas dimensões:

Introdução à programação VB . NET

• Dim a (3, 4) As Integer ‘tabela com 4 linhas e 5 colunas com valores inteiros (predef. 0)

• Dim b (,) As Decimal ‘array de duas dimensões sem a especificação do tamanho de ambas as dimensões

Exemplo de declaração de um array de duas dimensões e atribuição de valores numa única instrução:

Dim s(,) As String = {{“Pedro”, “Sousa”}, {“Ana”, “Pinto”}, {“Mário”, Silva}}

Equivalente a:Dim s(2,1) As Strings(0,0) = “Pedro”s(0,1) = “Sousa”s(1,0) = “Ana”s(1,1) = “Pinto”s(2,0) = “Mário”s(2,1) = “Silva”

Visual Basic.NET, C1 Slide 71

Introdução à programação VB . NET Sintaxe básica de redimensionamento de um array

ReDim [Preserve] nomedoarray (limitesuperior1 [, limitesuperior2])ReDim [Preserve] nomedoarray (limitesuperior1 [, limitesuperior2])

• Para redimensionar um array, utiliza-se a instrução ReDim. Pode-se usar esta instrução para aumentar ou diminuir o número de elementos do array, mas não se pode utilizar para alterar o número de dimensões do array.

• Por defeito, a instrução ReDim apaga todos os valores de um array. Se não for isso o desejado, pode-se incluir a palavra-chave Preserve. Assim, os valores existentes são preservados.

• Quando se redimensiona um array, está-se a criar um novo objecto array que éassociado à mesma variável que o array anterior. Consequentemente, não 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.

Introdução à programação VB . NET

Exemplos de redimensionamento de um array:

Dim a () As short = {1, 2, 3, 4, 5}

• Redim Preserve a(5) ‘altera o tamanho do array para seis elementos e preserva os valores existentes

• ReDim a (6) ‘altera o tamanho do array para sete elementos aos quais éatribuído o valor predefinido 0.

Dim s (2, 1) As String

• ReDim Preserve s (2, 2) ‘preserva os valores existentes e altera o número de elementos do da segunda dimensão do array.

• ReDim s (3,3) ‘altera o número de elementos de ambas as dimensões do array e atribuí-lhes o valor predefinido Nothing.

Visual Basic.NET, C1 Slide 72

Introdução à programação VB . NET A classe array:

Visual Basic.NET, C1 Slide 73

Um array é na realidade uma instância da classe Array. Esta classe contém várias propriedades e métodos que podem ser muito úteis para trabalhar com objectos arrays.

Algumas propriedades:

Length – número de elementos em todas as dimensões do array (uso mais provável em arrays de uma dimensão).

Rank – número de dimensões de um array.

Alguns métodos públicos:

GetLength(dimension) – devolve o número de elementos do array na dimensão especificada.

GetUpperBound(dimension) – devolve o limite superior do array na dimensão especificada.

Initialize – Inicializa os elementos de um array de acordo com o seu tipo de dados.