MSDN は、Visual Basic のオプション パラメータについて述べています。
オプションのパラメータごとに、そのパラメータのデフォルト値として定数式を指定する必要があります。式が Nothing と評価される場合、value データ型の既定値がパラメーターの既定値として使用されます。
したがって、その構文を使用することはできません。代わりに、次のようなものを書くことができます
Private Sub Test(a As Integer, Optional c As Color = Nothing)
If c = Nothing Then
c = Color.Black ' your default color'
End If
......
End Sub
C# で記述された同じコードは次のとおりです。
private void Test(int a, Color c = default(Color))
{
if (c.IsEmpty)
c = Color.Black;
}
C# では、値の型 (Color、Point、Size など) を null 値に対してテストすることはできません。これらの型は null になることはありませんが、型のデフォルト値 (整数の場合は 0 など) があるため、値の型にオプションのパラメーターを渡す必要がある場合は、必要なnew
値を持つキーワードを使用して作成できます。デフォルトとして使用するか、default
キーワードを使用して、フレームワークにタイプのデフォルト値を決定させます。フレームワークに選択させる場合、IsEmptyプロパティは true になります。