Frage

Nur aus Neugier:

Ich weiß, ich kann dem Compiler sagen, wenn ich ein Wert will als eine bestimmte numerische Art interpretiert werden, z.B. als Integer (32 Bit signed), auf diese Weise ein "I" (Typ Zeichen) auf den konstanten Wert angehängt:

Private Function GetTheAnswerAsInteger() As Integer

   Return 42I

End Function

Es gibt auch "S" für Short, "D" für Dezimal, etc.

Aber was ist das Suffix für Byte ? Hinweis: es ist nicht die offensichtlichste „B“ ...

War es hilfreich?

Lösung

Es gibt nicht ein. Wenn Sie zwischen einer ganzen Zahl und einem Byte (z rufen eine angemessene Überlast) für eine konstante unterscheiden müssen, müssen Sie werfen.

(Das gleiche gilt in C #, übrigens.)

MSDN bietet Bestätigung:

  

Byte hat keinen wörtlichen Typen Charakter oder   Bezeichner Typ Charakter.

Es gibt auch eine Liste der Lettern und wörtliche Suffixe .

Andere Tipps

  

So fügten wir binäre Literale in VB im Herbst letztes Jahr und bekamen ähnliches Feedback   von der frühen Tester. Wir haben entscheiden, ein Suffix für Byte für VB hinzuzufügen. Wir   ließ sich auf SB (für Byte mit Vorzeichen) und UB (für Byte ohne Vorzeichen). Der Grund   es ist nicht nur B und SB ist zweifach.

     

Eines, ist der B-Suffix nicht eindeutig, wenn Sie in hexadezimalen gerade schreiben (was   bedeutet 0xFFB?) und auch wenn wir eine Lösung für das hatten, oder einen anderen   Charakter als ‚B‘ ( ‚Y‘ angesehen wurde, verwendet diese F #) niemand könnte   erinnern, ob der Standard wurde mit oder ohne Vorzeichen - .NET-Bytes   standardmäßig ohne Vorzeichen, so wäre es sinnvoll, B und SB zu wählen, aber alle   die anderen Suffixe sind standardmäßig signiert, so dass es im Einklang stehen   mit anderem Typ B und Suffixe UB auszuwählen. Am Ende gingen wir   eindeutige SB und UB.   - Anthony D. Green,

https://roslyn.codeplex.com/discussions/542111

Es hat sich auf die kommende VB.NET Release integriert, und das ist so, wie es funktioniert:

Public Const MyByte As Byte = 4UB;
Public Const MyByte2 As SByte = 4SB;

Diese Antwort gibt nicht wirklich ein Suffix, aber es ist so nah wie es nur geht.

Wenn Sie definieren eine Erweiterungsmethode als

Imports System.Runtime.CompilerServices

Module IntegerExtensions

    <Extension()> _
    Public Function B(ByVal iNumber As Integer) As Byte
        Return Convert.ToByte(iNumber)
    End Function

End Module

Sie können es wie folgt verwendet werden:

Private Function GetTheAnswerAsByte() As Byte

   Return 42.B

End Function

Es gibt keine Byte wörtlichen in .NET.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top