1

重複の可能性:
C# でオプションのパラメーターを使用するにはどうすればよいですか?

私はテキスト アドベンチャーを作成しており、オンラインで見つけたコードを使用して、タイプライター スタイルの印刷をしています。したがって、このコードを関数に入れ、コードを型に渡すだけでなく、型間の遅延も渡そうとしています。ここで私の問題は、遅延の引数を常に入力する必要があるとは限らないことです.int変数のデフォルト値を検索し、変数がデフォルトではないかどうか、ifステートメントをチェックするかどうかを確認してみました。渡されたものを使用するデフォルトではありませんでした。それでも機能しない場合を除いて、何かを渡す必要があります。とにかくこれを機能させるためですか?

私の質問が紛らわしい場合は申し訳ありませんが、私は紛らわしい文章を作るのが得意ではありません...(参照?)

4

4 に答える 4

1

オプションの引数を使用できます:

public void MovePerson(int x, int y, int delay = 300) 
{

}

ここで、この完全に構成された関数では、関数を呼び出すときに値を指定しない場合に 300 に設定されるデフォルトの遅延を組み込むことができます。

MovePerson(10, 20);  //Delay for 300
MovePerson(10, 20, 100); //Delay for 100
于 2012-12-06T21:14:32.950 に答える
0
public void Task (String optional = "default") {
   ...
}
于 2012-12-06T21:13:50.740 に答える
0

デフォルトのパラメータを使用するだけ

int Multiply (int a = 10, int b = 20)
{
    return a * b;
}

または、関数をオーバーロードすることもできます

int Multiply ()
{
    return 10 * 20;
}
int Multiply (int a, int b)
{
    return a * b;
}
于 2012-12-06T21:15:43.303 に答える
0

この問題に対処する従来の方法は、複数のメソッド オーバーロードを使用することです。以下に一例を示します。

public class Foo
{
    public void Bar(string value)
    {
        Console.WriteLine(value);
    }

    public void Bar()
    {
        Bar("I have no value :(");
    }
}

Bar("hello world")or justを呼び出すBar()と、デフォルト値が使用されます。

C# では、オプションの引数を使用して、これが非常に一般的なパターンであるため、これを簡単にするためにシンタックス シュガーを導入しました。

public void Bar(string value = "I have no value :(")
{
    Console.WriteLine(value);
}

これは(ほぼ)同じように動作することになりますが、入力するのははるかに簡単です。

于 2012-12-06T21:16:07.960 に答える