|
分類:[VB.NET/VB2005 以降]
お世話になります。
C#とVB.NETのByte型の挙動について(Byte型だけではないとは思いますが)お伺いしたいことがあります。
例えば、以下のような構文を書いたときに、C#では255を超えた場合、自動で0へ初期化されますが、
VB.NETではオーバーフローエラーとなります。
◆C#
private void button1_Click(object sender, EventArgs e)
{
Byte _controlNum = 0;
for (int i = 0; i <= 300; i++)
{
_controlNum += 1;
}
}
◆VB.NET
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim _controlNum As [Byte] = 0
For i As Integer = 0 To 300
_controlNum += 1
Next
End Sub
つまりは、VB.NETではByte型にて宣言したとしても、上記コードの場合、
If _controlNum = 255 Then
_controlNum = 0
End If
のように、255の場合は0とするようなコードが必要となるのでしょうか?
現在は上記にてエラーを回避していますが、何か理由がみえず、気持ち悪く思っています。
言語仕様ということであればそれまでですが、皆様の見解をお聞かせください。
よろしくお願いいたします。
|