una - ¿Cuál es el sufijo(carácter de tipo) para las constantes numéricas de "Byte" en VB.NET?
vb net and or (4)
Solo por curiosidad:
Sé que puedo decirle al compilador si quiero que un valor se interprete como un cierto tipo numérico, por ejemplo, como Integer (32 bit signed), agregando así una "I" (tipo de carácter) al valor constante:
Private Function GetTheAnswerAsInteger() As Integer
Return 42I
End Function
También hay "S" para Corto, "D" para Decimal, etc.
Pero, ¿cuál es el sufijo de Byte ? Sugerencia: no es el obvio "B" ...
Entonces, agregamos literales binarios en VB el otoño pasado y recibimos comentarios similares de los primeros evaluadores. Decidimos agregar un sufijo para byte para VB. Nos decidimos por SB (para byte firmado) y UB (por byte sin signo). La razón por la cual no es solo B y SB es doble.
Uno, el sufijo B es ambiguo si estás escribiendo en hexadecimal (¿qué significa 0xFFB?) E incluso si tuviéramos una solución para eso, u otro personaje que no sea ''B'' (se consideró ''Y'', F # lo usa) no uno podría recordar si el valor predeterminado fue firmado o no firmado: los bytes NET están sin firmar de forma predeterminada, por lo que tendría sentido elegir B y SB, pero todos los demás sufijos están firmados por defecto, por lo que sería coherente con otros sufijos de tipo para seleccionar B y UB. Al final optamos por SB y UB inequívocos. - Anthony D. Green,
https://roslyn.codeplex.com/discussions/542111
Se ha integrado a la próxima versión de VB.NET, y esta es la forma en que funcionará:
Public Const MyByte As Byte = 4UB;
Public Const MyByte2 As SByte = 4SB;
Esta respuesta realmente no proporciona un sufijo, pero está lo más cerca posible.
Si define un método de extensión como
Imports System.Runtime.CompilerServices
Module IntegerExtensions
<Extension()> _
Public Function B(ByVal iNumber As Integer) As Byte
Return Convert.ToByte(iNumber)
End Function
End Module
Puedes usarlo así:
Private Function GetTheAnswerAsByte() As Byte
Return 42.B
End Function
No hay un byte literal en .NET.
No hay uno. Si necesita distinguir entre un entero y un byte (por ejemplo, para llamar a una sobrecarga adecuada) para una constante, debe emitir.
(Lo mismo es cierto en C #, por cierto).
MSDN proporciona la confirmación:
Byte no tiene carácter de tipo literal o carácter de tipo identificador.
También hay una lista de caracteres de tipo y sufijos literales .