SByte データ型 (Visual Basic)
-128 から 127 までの符号付き 8 ビット (1 バイト) の整数を保持します。
Remarks
完全なデータ幅の Integer
や半分のデータ幅の Short
も必要としない整数値を格納するには、SByte
データ型を使用します。 場合によっては、共通言語ランタイムで SByte
変数を緊密にパックし、メモリ消費を節約できる可能性があります。
SByte
の既定値は 0 です。
リテラルの代入
SByte
変数を宣言し、10 進リテラル、16 進リテラル、8 進リテラル、または (Visual Basic 2017 以降) バイナリ リテラルを代入することによって初期化できます。
次の例では、整数 -102 を 10 進リテラル、16 進リテラル、バイナリ リテラルで表したものが、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
注意
16 進リテラルを表すにはプレフィックス &h
または &H
を使い、バイナリ リテラルを表すにはプレフィックス &b
または &B
を使い、8 進リテラルを表すにはプレフィックス &o
または &O
を使います。 10 進リテラルには、プレフィックスはありません。
Visual Basic 2017 以降では、次の例に示すように、アンダースコア文字 _
を桁区切り記号として使って読みやすくすることもできます。
Dim sbyteValue3 As SByte = &B1001_1010
Console.WriteLine(sbyteValue3)
' The example displays the following output:
' -102
Visual Basic 15.5 以降では、プレフィックスと 16 進数、2 進数、または 8 進数の間に先頭の区切り記号としてアンダースコア文字 (_
) を使用することもできます。 次に例を示します。
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
は値が 156 の 32 ビット符号付き整数として解釈され、これは SByte.MaxValue を超えています。 SByte
に 10 進数以外の整数を代入する次のようなコードを正常にコンパイルするには、次のいずれかの操作を行います。
/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
データ型は共通言語仕様 (CLS) に含まれないため、CLS に準拠しているコードではそれを使用するコンポーネントを使用できません。拡大変換。
SByte
データ型は、Short
、Integer
、Long
、Decimal
、Single
、およびDouble
に拡大変換されます。 これは、System.OverflowException エラーを発生させることなく、これらの型のいずれかにSByte
を変換できることを意味します。型宣言文字。
SByte
には、リテラルの型文字も識別子の型文字も含まれません。Framework のデータ型 .NET Framework において対応する型は、System.SByte 構造体です。
関連項目
.NET