16

関数のオプションのパラメータとして Action を持つことは可能ですか? button2Action はオプションである必要があります。

public void DrawWindow(Rect p_PositionAndSize, string p_Button2Text = "NotInUse", Action p_Button2Action)
{
 // Stuff happens here
}

私はegで試しましたが、p_Button2Actionのデフォルトパラメータ値はコンパイル時の定数でなければならないため、コンパイルp_Button2Action = delegate{ Debug.Log("NotInUse"); }されません。コンパイル時の定数であるオプションのアクションをどのように作成しますか?

4

3 に答える 3

3

これに対する 1 つの回避策は、従来のオーバーロードを使用することです。

public void DrawWindow(Rect p_PositionAndSize, string p_Button2Text = "NotInUse")
{
    DrawWindow(p_PositionAndSize, delegate{ Thread.Sleep(1); }, p_Button2Text);
}

public void DrawWindow(Rect p_PositionAndSize, Action p_Button2Action, string p_Button2Text = "NotInUse")
{
 // Stuff happens here
}

このようにして、2 つのパラメーターを使用してオーバーロードで既定のアクションを指定できます。

于 2013-06-27T07:37:22.650 に答える
0

これを試して:

public void DrawWindow(Rect p_PositionAndSize, string p_Button2Text = "NotInUse", Action p_Button2Action = null)
{
 // Stuff happens here
}
于 2013-06-27T07:35:52.057 に答える