Compartilhar via


Caracteres de tipo (Visual Basic)

Além de especificar um tipo de dados em uma instrução de declaração, você pode forçar o tipo de dados de alguns elementos de programação com um caractere de tipo. O caractere de tipo deve seguir imediatamente o elemento, sem nenhum tipo de caractere intervindo.

O caractere de tipo não faz parte do nome do elemento. Um elemento definido com um caractere de tipo pode ser referenciado sem o caractere de tipo.

Caracteres de tipo identificador

O Visual Basic fornece um conjunto de caracteres de tipo de identificador que você pode usar em uma declaração para especificar o tipo de dados de uma variável ou constante. A tabela a seguir mostra os caracteres de tipo de identificador disponíveis com exemplos de uso.

Caractere de tipo identificador Tipo de dados Exemplo
% Integer Dim L%
& Long Dim M&
@ Decimal Const W@ = 37.5
! Single Dim Q!
# Double Dim X#
$ String Dim V$ = "Secret"

Não existem caracteres de tipo de identificador para os tipos de dados Boolean, Byte, Char, Date, Object, SByte, Short, UInteger, ULong ou UShort, ou para qualquer tipo de dados composto, como matrizes ou estruturas.

Em alguns casos, você pode acrescentar o $ caractere a uma função do Visual Basic, por exemplo Left$ , em vez de Leftobter um valor retornado do tipo String.

Em todos os casos, o caractere tipo do identificador deve seguir imediatamente ao nome do identificador.

Caracteres de tipo literal

Um literal é uma representação textual de um valor específico de um tipo de dados.

Tipos de literal padrão

A forma de um literal como ele aparece em seu código normalmente determina seu tipo de dados. A tabela a seguir mostra esses tipos padrão.

Forma textual de literal Tipo de dados padrão Exemplo
Numérico, sem parte fracionária Integer 2147483647
Numérico, sem parte fracionária, muito grande para Integer Long 2147483648
Parte numérica e fracionária Double 1.2
Entre aspas duplas String "A"
Entre sinais numéricos Date #5/17/1993 9:32 AM#

Tipos literais forçados

O Visual Basic fornece um conjunto de caracteres de tipo literal, que você pode usar para forçar um literal a assumir um tipo de dados diferente do que seu formulário indica. Você faz isso acrescentando o caractere ao final do literal. A tabela a seguir mostra os caracteres de tipo literal disponíveis com exemplos de uso.

Caractere de tipo literal Tipo de dados Exemplo
S Short I = 347S
I Integer J = 347I
L Long K = 347L
D Decimal X = 347D
F Single Y = 347F
R Double Z = 347R
US UShort L = 347US
UI UInteger M = 347UI
UL ULong N = 347UL
C Char Q = "."C

Não existem caracteres de tipo literal para os Booleantipos de dados , , ByteDate, ObjectSByteou String para qualquer tipo de dados composto, como matrizes ou estruturas.

Literais também podem usar os caracteres de tipo de identificador (%, &, @, !, #, $) assim como variáveis, constantes e expressões. No entanto, os caracteres de tipo literal (S, I, L, D, F, R, C) podem ser usados apenas com literais.

Em todos os casos, o caractere de tipo literal deve seguir imediatamente o valor literal.

Literais hexadecimais, binários e octais

O compilador normalmente interpreta um literal inteiro para estar no sistema de números decimal (base 10). Você também pode definir um literal inteiro como um número hexadecimal (base 16) com o &H prefixo, como um número binário (base 2) com o &B prefixo e como um número octal (base 8) com o &O prefixo. Os dígitos que seguem o prefixo devem ser apropriados para o sistema de números. A tabela a seguir ilustra isso.

Base numérica Prefixo Valores de dígito válidos Exemplo
Hexadecimal (base 16) &H 0-9 e A-F &HFFFF
Binário (base 2) &B 0-1 &B01111100
Octal (base 8) &O 0-7 &O77

A partir do Visual Basic 2017, você pode usar o caractere de sublinhado (_) como separador de grupo para aprimorar a legibilidade de um literal integral. O exemplo a seguir usa o _ caractere para agrupar um literal binário em grupos de 8 bits:

Dim number As Integer = &B00100010_11000101_11001111_11001101

Você pode seguir um literal prefixado com um caractere de tipo literal. O exemplo a seguir mostra isso.

Dim counter As Short = &H8000S
Dim flags As UShort = &H8000US

No exemplo anterior, counter tem o valor decimal de -32768 e flags tem o valor decimal de +32768.

A partir do Visual Basic 15.5, você também pode usar o caractere de sublinhado (_) como um separador à esquerda entre o prefixo e os dígitos hexadecimais, binários ou octais. Por exemplo:

Dim number As Integer = &H_C305_F860

Para usar o caractere de sublinhado como um separador inicial, você deve adicionar o seguinte elemento ao arquivo do projeto do Visual Basic (*.vbproj):

<PropertyGroup>
  <LangVersion>15.5</LangVersion>
</PropertyGroup>

Para obter mais informações, consulte Selecionar a versão do idioma do Visual Basic.

Consulte também