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 para tipos de dados compostos, 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 Left, para obter um valor retornado do tipo String.

Em todos os casos, o caractere de tipo de identificador deve seguir imediatamente o 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 os valores 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 tipos de dados Boolean, Byte, Date, Object, SByte ou 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 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 a 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 decimais de +32768.

A partir do Visual Basic 15.5, você também pode usar o caractere de sublinhado (_) como 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 separador à esquerda, você deve adicionar o seguinte elemento ao arquivo de projeto do Visual Basic (*.vbproj):

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

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

Confira também