C#では、defaultキーワードを使うことで値型・参照型問わず、任意の型でそのデフォルト値を取得することができます。
VBではこのようなキーワードは用意されていませんが、代わりにNothingキーワードを使うことができます。 Nothing
は参照型のほか、値型にも使うことができ、値型の場合は対象の型のデフォルト値を表すものとなります。
Nothingキーワードで型のデフォルト値を取得する
Imports System
Class Sample
Shared Sub Main()
Dim i As Integer = Nothing ' Integerのデフォルト値
Dim b As Boolean = Nothing ' Booleanのデフォルト値
Dim s As String = Nothing ' Stringのデフォルト値
Dim dtm As Date = Nothing ' Dateのデフォルト値
Dim p As Point = Nothing ' 独自に定義した構造体Pointのデフォルト値
Console.WriteLine("default(Integer) = {0}", i)
Console.WriteLine("default(Boolean) = {0}", b)
Console.WriteLine("default(String) = {0}, Is Nothing? = {1}", s, s Is Nothing)
Console.WriteLine("default(Date) = {0}", dtm)
Console.WriteLine("default(Point) = {0}", p)
End Sub
End Class
Structure Point
Public Sub New(ByVal x As Integer, ByVal y As Integer)
Me.x = x
Me.y = y
End Sub
Public Overrides Function ToString() As String
Return String.Format("({0}, {1})", x, y)
End Function
Private x, y As Integer
End Structure
実行結果
default(Integer) = 0 default(Boolean) = False default(String) = , Is Nothing? = True default(Date) = 0001/01/01 0:00:00 default(Point) = (0, 0)