default
キーワード、デフォルト値としてのNothing
キーワードは、ジェネリックなクラス・メソッドで特に役に立つものです。 このキーワードを用いると、デフォルト値を返したり設定したい場合、数値型なら0
、参照型ならnull
/Nothing
といった型による場合分けをする必要が無くなります。
次の例は、Array.Clearメソッドと同様のメソッドを実装する例です。 この例では、配列をクリアする処理をジェネリックメソッドとして実装しています。 配列内の各要素に対してdefault
/Nothing
で型に応じたデフォルト値を代入することにより、配列をクリアしています。
ジェネリックメソッドにおいて、defaultキーワードで型引数の型に応じたデフォルト値を取得する
using System;
class Sample {
// 任意の型Tの配列の内容をクリアする
static void Clear<T>(T[] arr)
{
for (int i = 0; i < arr.Length; i++) {
arr[i] = default(T); // 型Tのデフォルト値を設定する
arr[i] = default; // 対象の型が明らかな場合は型指定を省略することもできる
}
}
static void Main()
{
var intArray = new int[10];
var strArray = new string[10];
Clear(intArray);
Clear(strArray);
}
}