SByteデータ型(バイナリinteropとファームウェアを伴う)の列挙型を定義しようとしています。私は以下のようなものを持っている:SByteで負の値に16進数を使用する
Public Enum Codes AS SByte
IDLE = &H0
IN_PROGRESS = &H1
DONE = &H2
SOME_ERROR = &H80
SOME_OTHER_ERROR = &H81
End Enum
は残念ながら2つのエラー・コードは、コンパイル時エラーになる:「定数式は、タイプに 『SByte』を表現できません」
明らかに、これらの値を整数として扱い、それをSByteに変換しようとしています。整数0x80 = 128として。SByteの範囲は[-128,127]なので、この値はSByteには大きすぎます。
- (& H80)を使用した場合、これが解決されます。しかし、これは-127の代わりに - (129)...
私はちょうどこれを回避するためにこれらの数字の小数表現を使用することができますが、私はこれを回避するために - & H81では動作しません。これは基本的なアセンブリコードと一貫しているので、16進数(VBの恐ろしい接頭辞でさえも)を使用することを好みます。
だから、誰かが16進数を使って負のSByte値の正しい構文を知っていれば、私はそれを感謝するだろう!