32ビットの整数を表す型「System.Int32」は、VB.NETでは「Integer」、C#では「int」と書くこともできます。「Integer」や「int」は「System.Int32」のエイリアス(別名)ですので、どちらを使っても結果は全く同じになります。つまり、コードの見た目が変わるだけで、それ以外の違いは全くありません。
以下のコードの2行は全く同じことです。
Dim i As Integer = 0 Dim i As System.Int32 = 0
int i = 0;
System.Int32 i = 0;
以下、「Integer」や「int」を「組み込み型」、「System.Int32」を「.NET Framework型」と呼ぶことにします。
Integerやint以外にも組み込み型は幾つかあります。もちろんこれらも、組み込み型と.NET Framework型のどちらを使っても同じ結果になります。
以下にVB.NETとC#の組み込み型を列挙します。
.NET Framework型 | VB.NET型 | C#型 |
---|---|---|
System.Boolean | Boolean | bool |
System.Byte | Byte | byte |
System.SByte | SByte | sbyte |
System.Char | Char | char |
System.Decimal | Decimal | decimal |
System.Double | Double | double |
System.Single | Single | float |
System.Int32 | Integer | int |
System.UInt32 | UInteger | uint |
System.Int64 | Long | long |
System.UInt64 | ULong | ulong |
System.Object | Object | object |
System.Int16 | Short | short |
System.UInt16 | UShort | ushort |
System.String | String | string |
実は組み込み型しか使用できないケースがあります。
構造体を宣言する時に基になる型を指定することができますが、C#ではこの時組み込み型でしか記述できません。.NET Framework型で記述するとコンパイル時にエラー(コンパイラエラーCS1008 : byte、sbyte、short、ushort、int、uint、long または ulong のいずれかの型を使用してください。)になります。
ただし、Visual Studio 2015からは、このエラーが出なくなりました。
enum Fruits : int { Apple, Orange } //以下のようにするとエラーになる enum Fruits2 : System.Int32 { Apple, Orange }
VB.NETでは、どちらでも大丈夫なようです。
Public Enum Fruits As Integer Apple Orange End Enum '以下のようにしても大丈夫 Public Enum Fruits2 As System.Int32 Apple Orange End Enum
組み込み型と.NET Framework型のどちらを使うべきかについては、はっきりした規則(ガイドライン)がありません。MSDNのコードを見ても一貫性が見られません。
一般的には組み込み型を使うという人が多いような気がしますが、逆に.NET Framework型しか使わないという人もいます。あるいは、通常は組み込み型を使い、型の静的メンバ(Int32.Parseメソッドなど)を呼び出す時だけ.NET Framework型を使うという人もいます。
組み込み型を使う利点と.NET Framework型を使う利点がそれぞれにあります。まずは組み込み型を使う利点を挙げてみます。
次に.NET Framework型名を使う利点を挙げてみます。
以上を参考にして、お好きな方をご使用ください。
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。