[C#] オプションのパラメータを使用したMVCアクション - これは優れていますか?


Answers

オプションのパラメータ値がnull以外のものになる場合は、オプションのパラメータ値を指定する必要がありnull

MVC3は、オーバーロードに何も指定されていない場合、またはアクションの呼び出しで、パラメータの値としてnullを自動的に設定しnull

ただし、シグネチャ内のこのパラメータの後にオプションでないパラメータがある場合は、コールでnullを指定する必要があることに注意してください。

したがって、すべてのオプションのパラメータを署名の最後に置くのが最善です。

Question

行動シグネチャに次の2つの選択肢を使用することの長所と短所があります:

public ActionResult Action(int? x) // get MVC to bind null when no parameter is provided
{
    if(x.HasValue)
    {
        // do something
    }
}

または

public ActionResult Action(int? x = null) // C# optional parameter (virtual overload)
{
    if(x.HasValue)
    {
        // do something
    }
}



Links