C#では、defaultキーワードを使うことで値型・参照型問わず、任意の型でそのデフォルト値を取得することができます。
VBではこのようなキーワードは用意されていませんが、代わりにNothingキーワードを使うことができます。 Nothing
は参照型のほか、値型にも使うことができ、値型の場合は対象の型のデフォルト値を表すものとなります。
defaultキーワードで型のデフォルト値を取得する
using System;
class Sample {
static void Main()
{
int i = default(int); // intのデフォルト値
bool b = default(bool); // boolのデフォルト値
string s = default(string); // stringのデフォルト値
DateTime dtm = default(DateTime); // DateTimeのデフォルト値
Point p = default(Point); // 独自に定義した構造体Pointのデフォルト値
Console.WriteLine("default(int) = {0}", i);
Console.WriteLine("default(bool) = {0}", b);
Console.WriteLine("default(string) = {0}, null? = {1}", s, s == null);
Console.WriteLine("default(DateTime) = {0}", dtm);
Console.WriteLine("default(Point) = {0}", p);
}
}
struct Point {
public Point(int x, int y)
{
this.x = x;
this.y = y;
}
public override string ToString()
{
return string.Format("({0}, {1})", x, y);
}
private int x, y;
}
実行結果
default(int) = 0 default(bool) = False default(string) = , null? = True default(DateTime) = 0001/01/01 0:00:00 default(Point) = (0, 0)