Visual Basic 2010 - (02) Programação Básica

43
Microsoft Visual Basic 2010 Programação Básica 07/02/2022 Fagner S. de Lima - Microsoft Visual Basic 2010 1

description

Visual Basic.NET é uma linguagem de programação totalmente orientada a objetos e com suporte total a UML, criada pela Microsoft e distribuída com o Visual Studio .NET.O Visual Basic.NET é um produto extremamente diferente do antigo Visual Basic 6.0, não podendo ser considerada uma versão seguinte. Não apenas a maneira de programar foi alterada, mas todo conceito de orientação a objetos trouxe poder para a linguagem. A Microsoft simplesmente descontinuou o antigo Visual Basic 6.0 tornando o produto parecido com as demais linguagens do Visual Studio, parecido em questões de recursos e portabilidade pois o Visual Basic.NET ainda é muito diferente de liguagens como o Visual C++, C#, etc. Porém esta nova versão aproximou o Visual Basic.NET das grandes linguagens de programação, aumentando a aceitação dos programadores Java e até mesmo C++, embora os programadores Java que migram para a plataforma .NET da Microsoft prefiram o C#.Apesar da linguagem ser parecida com o antigo Visual Basic 6.0 a migração para a nova plataforma e utilização do Visual Basic.NET é mais fácil para programadores que utilizam linguagens orientada a objeto. Os programadores do antigo Visual Basic 6.0 acostumados com a orientação a eventos encontram algumas dificuldades na utilização do Visual Basic.NET.Os desenvolvedores podem criar uma ampla gama de aplicativos Web, móveis, do Windows e do Office, com a mesma base .Net Framework, que tem atualmente a versão 4.0.

Transcript of Visual Basic 2010 - (02) Programação Básica

Page 1: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 1

Microsoft Visual Basic 2010

Programação Básica

Page 2: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 2

Objetivos

Palavras-chave Comentários Tipos de Dados Declaração de Variáveis Declaração de Constantes Atribuição de valores a Variáveis e Constantes Operadores

Page 3: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 3

Palavras-chave

A linguagem de programação VB 2010 possui palavras-chave que são reservadas e não devem ser usadas como identificadores de variáveis, constantes, procedimentos, módulos, sub-rotinas, funções, objetos, etc.Você deve evitar também algumas palavras-chave não reservadas da linguagem VB 2010 para manter a legibilidade dos seus códigos.

As palavras-chave reservadas e as palavras-chave não reservadas que devem ser evitadas são apresentadas na página da web:

http://msdn.microsoft.com/pt-br/library/vstudio/dd409611(v=vs.100).aspx

Page 4: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 4

Comentários

Os comentários de códigos são utilizados para descrever o código com objetivo de documentar e facilitar o entendimento do programa.Os comentários de códigos em linguagem VB 2010 são prefixados com apóstrofo ('). O editor de código marca os comentários na cor verde.O compilador VB ignora todos os caracteres após a apóstrofo até o final da linha de código.O exemplo a seguir mostra um comentário de código em VB.

' Comentário em Visual Basic

Page 5: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 5

Variável

Variável é um espaço alocado na memória para armazenamento de valores. Uma variável tem um nome identificador, um endereço inicial de alocação na memória, um tamanho do espaço de alocação na memória e um tipo.

Page 6: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 6

Constante

Constante é um espaço alocado na memória para armazenamento de um valor, que após a atribuição não pode ser alterado. Uma constante, assim como uma variável, também tem um nome identificador, um endereço inicial de alocação na memória, um tamanho do espaço de alocação na memória e um tipo.

Page 7: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 7

Tipos de Dados

Um tipo define os tipos de valores a serem armazenados na memória, o espaço a ser alocado na memória para armazenar valores deste tipo e a faixa de valores.Os tipos facilitam o trabalho do programador, que simplesmente declara uma variável ou constante de um determinado tipo, evitando que defina explicitamente as características de cada variável ou constante declarada no programa.Todas as linguagens de programação .NET são baseadas no Common Type System (Sistema de Tipo Comum) do .NET Framework. O Common Type System fornece tipos unificados para todas as linguagens .NET (DEL SOLE, 2010).

Page 8: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 8

Tipos de Dados

Segundo Balena (2010), os milhares de tipos suportados pelo .NET Framework podem ser agrupados em duas amplas categorias: Tipos de Valor (Value Types) Tipos de Referência (Reference Types)

Page 9: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 9

Tipos de Dados

Os tipos de valor definem variáveis ou constantes que armazenam os valores. Os valores destes tipos são armazenados em uma área de memória chamada Stack (pilha).Os tipos de valor da linguagem VB 2010 são: booleano, numéricos, Char, Date, Structure e Enum.Os tipos de referência definem variáveis ou constantes, conhecidas como ponteiros, que armazenam os endereços iniciais de memória onde estão armazenados os valores, ou seja, armazenam endereços iniciais de memória que fazem referência aos valores (apontam para os valores). Desta forma, os ponteiros são variáveis que armazenam endereços de memória.

Page 10: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 10

Tipos de Dados

De acordo com Balena (2010), os ponteiros são armazenados na Stack, enquanto que os valores referenciados pelos ponteiros são armazenados em uma área de memória chamada Heap gerenciado. Esta área é gerenciada pelo CLR, que determina quando deve realizar o processo conhecido como coleta de lixo que libera as posições de memória ocupadas por valores que deixaram de ser referenciados pelos ponteiros após a destruição destes.Os tipos de referência da linguagem VB 2010 são: String, Arrays e Classes.

Page 11: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 11

Microsoft Visual Basic 2010

Tipos de Dados

Page 12: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 12

Tipo Booleano

Permite definir variáveis ou constantes do tipo booleano (lógico) que podem assumir dois valores: True ou False, que representam dados que podem ter dois estados possíveis como, por exemplo, verdadeiro ou falso, ligado ou desligado, aberto ou fechado, etc.O valor default, isto é, o valor padrão após a declaração da variável sem atribuição de um valor pelo programador de uma variável do tipo Boolean é False.

Tipo Tamanho Faixa de valores

Boolean Depende da plataforma True ou False

Page 13: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 13

Tipos de Números

A tabela mostra as características dos tipos de números definidos na linguagem VB:

Tipo Tamanho Faixa de valores

Byte 1 byte 0 a 255

Sbyte 1 byte -128 a 127

Short 2 bytes -32.768 a 32.767

Ushort 2 bytes 0 a 65.535

Integer 4 bytes -2.147.483.648 a 2.147.483.647

Uinteger 4 bytes 0 a 4.294.967.295

Long 8 bytes -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807

Ulong 8 bytes 0 a 18.446.744.073.709.551.615

Single (Float de precisão simples)

4 bytes -3.4028235E+38 a -1,401298E-45 para valores negativos1,401298E-45 a 3,4028235E+38 para valores positivos

Double (Float de precisão dupla)

8 bytes -1.79769313486231570E+308 a -4,94065645841246544E-324 para valores negativos4,94065645841246544E-324 a 1,79769313486231570E+308 para valores positivos

Decimal 16 bytes 0 a +/-79.228.162.514.264.337.593.543.950.335 (sem casa decimal)0 a +/-7,9922816251426337593543950335 (com 28 casas decimais)

Page 14: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 14

Tipos de Números

Cada tipo de número permite declarar variáveis ou constantes que ocupam um determinado espaço de memória e armazenam números de uma determinada faixa de valores.O programador deve escolher o tipo que ocupe a menor quantidade de memória em bytes e seja capaz de armazenar a faixa de valores possível de um determinado dado a ser armazenado em uma variável ou constante. Esta abordagem permite otimizar o programa, tendo em vista que as variáveis ocupam somente os espaços de memória necessários e suficientes e consumem menos tempo e recursos, como pilha e registradores, para processamento.

Page 15: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 15

Tipos de Números

Por exemplo, vamos supor a necessidade de se declarar uma variável para armazenar a quantidade de filhos de uma pessoa. Neste caso, basta declarar uma variável do tipo Byte que ocupa apenas um byte e permite armazenar valores de 0 a 255.Uma variável do tipo Byte seria suficiente para armazenar a idade de uma pessoa em anos, a quantidade de dias em um mês, a quantidade de meses em um ano, etc.

Page 16: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 16

Tipos de Números

O tipo Single define números de ponto flutuante com precisão até a sexta casa decimal.O tipo Double define números de ponto flutuante com o dobro de dígitos significativos em relação ao tipo Single ou com precisão até a décima casa decimal, que evita os erros de arredondamento que podem acontecer com números do tipo Single.Desta forma, o tipo Double é indicado para números utilizados em aplicações científicas, financeiras ou de engenharia.O tipo Decimal define números inteiros de 12 bytes ou números com 0 a 28 casas decimais.O valor default das variáveis de tipos de número é zero.

Page 17: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 17

Tipos de Caracteres

Tipo Tamanho Faixa de valores

Char(caracter simples)

2 bytes 0 a 65.535

String(cadeira de caracteres)

Depende da plataforma 0 a aproximadamente 2 bilhões de caracteres codificados em Unicode.

Page 18: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 18

Tipos de Caracteres

Como os computadores processam números, os caracteres são codificados em números. Existem vários padrões de codificações de caracteres como, por exemplo, a codificação ASCII que representa os caracteres com 1 byte, portanto limitado a 256 caracteres.Para suportar linguas com maior quantidade de caracteres, o Consórcio Unicode promove e mantém o padrão de codificação Unicode, que independe de plataforma, programa e linguagem.O padrão Unicode é adotado pelas principais empresas de TI como Apple, HP, IBM, Microsoft, Oracle, SAP, Unisys etc. (UNICODE, 2010).

Page 19: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 19

Tipos de Caracteres

O tipo Char define variáveis ou constantes que armazenam o código de 2 bytes de um caracter na codificação Unicode.O valor default de uma variável do tipo Char é zero.

O tipo String define um ponteiro para uma cadeia de caracteres codificados em Unicode. A cadeia de caracteres pode ter até aproximadamente 231 caracteres.O valor default do ponteiro deste tipo é Nothing, isto é, sem endereço.

Page 20: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 20

Tipos Diversos

Tipo Tamanho Faixa de valores

Date 8 bytes 00:00:00 (meia-noite) de 1 de janeiro de 0001 a 11:59:50(PM) de 31 de dezembro de 9999.

Object 4 bytes em plataformas de 32 bits.8 bytes em plataformas de 64 bits.

Valores do tipo objeto.

Structure(definido pelo programador)

Depende da plataforma Cada membro da estrutura tem valores definidos pelo respectivo tipo e independente dos demais membros.

Page 21: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 21

Tipos Diversos

O tipo Date define variáveis ou constantes que armazenam data, horário ou data e horário. O formato padrão é m/d/aaaa delimitado pelo caracter # como, por exemplo, #3/4/1998#, que representa a data 4 de março de 1998.O valor default de uma variável ou constante deste tipo é 00:00:00 (meia noite) de 1 de janeiro de 0001.O tipo Object define um ponteiro que armazena o endereço de referência a qualquer valor ou objeto.O valor default do ponteiro deste tipo é Nothing, isto é, sem endereço.O tipo Structure permite que o programador defina estruturas com membros de diferentes tipos.

Page 22: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 22

Tipo Literal

Alguns valores literais podem ser compatíveis com diferentes tipos como, por exemplo, "A" pode ser do tipo Char ou String e o valor literal 1 pode ser do tipo Byte, SByte, Short, UShort, Integer, UInteger, Long ou ULong.Os caracteres do tipo de literal (Literal Type Characters) permitem que você especifique explicitamente os tipos de literais para o compilador.

Page 23: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 23

Tipo Literal

A tabela a seguir mostra essas especificações:

Caracter Tipo Exemplo

C Char "A"C

D Decimal 98.2D

F Single 1F

I Integer 1I

L Long 1L

R Double 1R

S Short 1S

UI Uinteger 1UI

UL Ulong 1UL

US UShort 1US

Page 24: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 24

Microsoft Visual Basic 2010

Variáveis e Constantes

Page 25: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 25

Declaração de Variável

A declaração de uma variável é feita através da palavra-chave reservada Dim, conforme a seguinte sintaxe:

Dim Nome As Tipo

Os nomes identificadores devem começar com letra ou sublinha ("_"), conhecido como underscore (ou underline), e não devem conter espaços ou símbolos.É usual evitar o uso de acentuações em códigos de programas de computador.

Page 26: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 26

Declaração de Variável

O exemplo a seguir declara uma variável de nome Idade do tipo Byte e uma variável de nome Endereco do tipo String.

Dim Idade As ByteDim Endereco As String

Você pode declarar, na mesma sentença, variáveis do mesmo tipo, separando os nomes por vírgula.O exemplo a seguir declara, na mesma sentença, duas variáveis do tipo Byte e de nomes Dia e Mes.

Dim Dia, Mes As Byte

Page 27: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 27

Declaração de Variável

Você pode declarar, na mesma sentença, variáveis de tipos diferentes, separando os nomes e os tipos por vírgula.O exemplo a seguir declara, na mesma sentença, uma variável de nome Numero do tipo Ushort e uma variável de nome Complemento do tipo String.

Dim Numero As Ushort, Complemento As String

Page 28: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 28

Atribuição de valor à Variável

A atribuição de valor é feita através do sinal de igual, conforme a sintaxe a seguir:

Nome = valor

O exemplo a seguir atribui o valor 5 à variável Idade.Idade = 5

O exemplo a seguir atribui o literal "Av. Presidente Vargas" à variável Endereco.

Endereco = "Av. Presidente Vargas"

Page 29: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 29

Atribuição de valor à Variável

A atribuição de um valor a uma variável pode ser feita na mesma sentença da declaração da variável, conforme a sintaxe a seguir:

Dim Nome As Tipo = valor

O exemplo a seguir declara uma variável de nome Dependentes do tipo Byte e atribui o valor 1.

Dim Dependentes As Byte = 1

Page 30: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 30

Declaração de Constante

A declaração de uma constante é feita através da palavra-chave reservada Const, e a atribuição de um valor é feita com sinal de igual, conforme a seguinte sintaxe:

Const Nome As Tipo = valor

A linguagem VB 2010 tem constantes predefinidas que podem ser conhecidas acessando:

http://msdn.microsoft.com/pt-br/library/dy7yth1w(v=vs.100).aspx

Page 31: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 31

Declaração de Constante

Uma constante deve ter o seu valor atribuído na sentença de declaração.O exemplo a seguir declara uma constante de nome Versao do tipo Decimal com valor igual a 1.0, e outra constante de nome PI do tipo Double com valor igual a 3.1415.

Const Versao As Decimal = 1.0Const PI As Double = 3.1415

Page 32: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 32

Microsoft Visual Basic 2010

Operadores

Page 33: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 33

Operadores

Os operadores básicos da linguagem VB 2010 podem ser agrupados nas seguintes categorias: Operadores Aritméticos Operadores de Concatenação Operadores de Deslocamento de Bits Operadores de Atribuição Operadores de Comparação Operadores Lógicos

Page 34: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 34

Operadores Aritméticos

Operador Descrição

+ Adição

- Subtração

* Multiplicação

/ Divisão

\ Parte inteira do resultado da divisão

Mod Resto do resultado da divisão

^ Eleva a potência de um valor

Page 35: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 35

Operadores de Concatenação

Operador Descrição

& Concatena duas strings

+ Concatena duas strings(equivale ao operador &)

Page 36: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 36

Operadores deDeslocamento de Bits

Operador Descrição

<< Desloca uma quantidade de bits a esquerda de um valor em bits e acrescenta zeros a esquerda

>> Desloca uma quantidade de bits a direita de um valor em bits e acrescenta zeros a direita

Page 37: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 37

Operadores deDeslocamento de Bits

O código a seguir apresenta exemplos do uso de operadores de deslocamento.

Dim Numero As Short = 192' O conteúdo de Numero em bits é 0000 0000 1100 0000Dim Res1, Res2, Res3 As ShortRes1 = Numero << 0Res2 = Numero << 4Res3 = Numero << 17' O conteúdo de Res1 é 192 (0000 0000 1100 0000)' O conteúdo de Res2 é 3072 (0000 1100 0000 0000)' O conteúdo de Res3 é 384 (0000 0001 1000 0000)

Page 38: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 38

Operadores de Atribuição

Operador Descrição Exemplo

= Atribui um valor a uma variável ou constante X = Y

+= Adiciona e atribui o valor X += Y [X = X + Y]

-= Subtrai e atribui o valor X -= Y [X = X - Y]

*= Multiplica e atribui o valor X *= Y [X = X * Y]

/= Divide e atribui o valor X /= Y [X = X / Y]

\= Divide e atribui a parte inteira do resultado da divisão X \= Y [X = X \ Y]

^= Eleva a potência de um valor e atribui o resultado X ^= Y [X = X ^ Y]

<<= Desloca uma quantidade de bits a esquerda de um valor em bits e acrescenta zeros a esquerda e atribui o valor

X <<= Y [X = X << Y]

>>= Desloca uma quantidade de bits a direita de um valor em bits e acrescenta zeros a direita e atribui o valor

X >>= Y [X = X >> Y]

&= Concatena e atribui o resultado X &= Y [X = X & Y]

Page 39: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 39

Operadores de Comparação

Operador Descrição

< Menor que

<= Menor ou igual

> Maior que

>= Maior ou igual

= Igual

<> Diferente

Is Retorna True caso os dois nomes de objetos (ponteiros) apontem para o mesmo objeto. Retorna False caso contrário.

IsNot Retorna True caso os dois nomes de objetos (ponteiros) não apontem para o mesmo objeto. Retorna False caso contrário.

Like Retorna True caso um padrão de string esteja contido em uma string. Retorna False caso contrário.

Page 40: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 40

Operadores Lógicos

Operador Descrição

And Executa a operação AND (E) em duas expressões booleanas, binárias ou numéricas.

Not Executa a operação NOT (NÃO) em duas expressões booleanas, binárias ou numéricas.

Or Executa a operação OR (OU) em duas expressões booleanas, binárias ou numéricas.

Xor Executa a operação XOR (Exclusive-OR) em duas expressões booleanas, binárias ou numéricas.

AndAlso Executa a operação AND (E) em duas expressões booleanas, binárias ou numéricas, ignorando a avaliação da segunda expressão caso a primeira expressão seja False.

OrElse Executa a operação OR (OU) em duas expressões booleanas, binárias ou numéricas. ignorando a avaliação da segunda expressão caso a primeira expressão seja True.

Page 41: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 41

Microsoft Visual Basic 2010

Conclusão

Page 42: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 42

Saiba mais

Vídeo de introdução à linguagem Visual Basic:http://msdn.microsoft.com/pt-br/beginner/bb308774.aspx

Histórico da linguagem VB:http://visualbasic.freetutes.com/?gclid=COGuurSx9KICFYMe7godMD-uhQ ;http://www.johnsmiley.com/visualbasic/vbhistory.htm

Portal da referência da linguagem VB 2010:http://msdn.microsoft.com/en-us/library/sh9ywfdk.aspx

Palavras-chave da linguagem VB 2010:http://msdn.microsoft.com/en-us/library/dd409611.aspx

Tipos da linguagem VB 2010:http://msdn.microsoft.com/en-us/library/47zceaw7.aspx

Constantes predefinidas da linguagem VB 2010:http://msdn.microsoft.com/en-us/library/dy7yth1w.aspx

Operadores da linguagem VB 2010:http://msdn.microsoft.com/en-us/library/f15ea9k8.aspx

Page 43: Visual Basic 2010 - (02) Programação Básica

10/04/2023 Fagner S. de Lima - Microsoft Visual Basic 2010 43

Referências

Universidade Estácio de Sá Microsoft

http://msdn.microsoft.com/pt-br/library/vstudio/2x7h1hfk(v=vs.100).aspx