SByte 資料類型 (Visual Basic)
保存帶正負號的 8 位元 (1 位元組) 整數,值的範圍從 -128 到 127。
備註
使用 SByte
資料類型來包含整數值,這些值不需要 Integer
的完整資料寬度,或甚至 Short
的半資料寬度。 在某些情況下,Common Language Runtime 或許能夠將您的 SByte
變數緊密封裝在一起,並節省記憶體耗用量。
SByte
的預設值為 0。
常值指派
您可以針對 SByte
變數指派十進位常值、十六進位常值、八進位常值或二進位常值 (自 Visual Basic 2017 起),以將其宣告和初始化。
在下列範例中,以十進位、十六進位和二進位常值表示的 -102 整數,會指派給 SByte
值。 此範例會要求您使用 /removeintchecks
編譯器參數進行編譯。
Dim sbyteValue1 As SByte = -102
Console.WriteLine(sbyteValue1)
Dim sbyteValue4 As SByte = &H9A
Console.WriteLine(sbyteValue4)
Dim sbyteValue5 As SByte = &B1001_1010
Console.WriteLine(sbyteValue5)
' The example displays the following output:
' -102
' -102
' -102
注意
您可以使用 &h
或 &H
前置詞來表示十六進位常值,以 &b
或 &B
前置詞來表示二進位常值,以 &o
或 &O
前置詞來表示八進位常值。 十進位常值沒有前置詞。
自 Visual Basic 2017 開始,您也可以使用底線字元 (_
) 作為數字分隔符號,以提升可讀性,如下列範例所示。
Dim sbyteValue3 As SByte = &B1001_1010
Console.WriteLine(sbyteValue3)
' The example displays the following output:
' -102
從 Visual Basic 15.5 開始,您也可以使用底線字元 (_
) 作為前置字元與十六進位、二進位或八進位數字之間的前置分隔符號。 例如:
Dim number As SByte = &H_F9
若要使用底線字元作為前置分隔符號,您必須將下列項目新增至 Visual Basic 專案 (*.vbproj) 檔:
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
如需詳細資訊,請參閱選取 Visual Basic 語言版本。
如果整數常值超出 SByte
的範圍 (亦即,如果小於 SByte.MinValue 或大於 SByte.MaxValue),就會發生編譯錯誤。 當整數常值沒有尾碼時,會推斷 Integer。 如果整數常值超出 Integer
類型的範圍,則會推斷 Long。 這表示,在先前範例中,會將數值常值 0x9A
和 0b10011010
解譯為 32 位元帶正負號的整數值 156,而該值已超過 SByte.MaxValue。 若要成功編譯像這樣將非十進位整數指派給 SByte
的程式碼,您可以執行下列動作之一:
使用
/removeintchecks
編譯器參數進行編譯,以停用整數界限檢查。使用類型字元明確定義您要指派給
SByte
的常值。 下列範例會將負常值Short
值指派給SByte
。 請注意,針對負數,必須設定數值常值高序位字組的高序位位元。 在我們的範例中,這是常值Short
值的位元 15。Dim sByteValue1 As SByte = &HFF_9As Dim sByteValue2 As SByte = &B1111_1111_1001_1010s Console.WriteLine(sByteValue1) Console.WriteLine(sByteValue2)
程式設計提示
CLS 合規性。
SByte
資料類型不屬於 Common Language Specification (CLS),因此符合 CLS 規範的程式碼無法取用使用該資料類型的元件。擴展。
SByte
資料類型可擴展為Short
、Integer
、Long
、Decimal
、Single
和Double
。 這表示,您可以將SByte
轉換成這些類型的任何一種,而不會發生 System.OverflowException 錯誤。類型字元。
SByte
沒有常值型別字元或識別項型別字元。Framework 類型。 在 .NET Framework 中對應的類型為 System.SByte 結構。