visual una net loop declarar constante constant como and vb.net types constants

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.