C#4.0の答えはもう機能しません。<- (申し訳ありませんが、これは間違っています)
TimeSpanをデフォルト値のオプションパラメータとして使用するにはどうすればよいですか?
public static Foo(string myString, TimeSpan maxWait = TimeSpan.FromSeconds(1))
{
// do something
}
このコードでエラーが発生します:
デフォルトのパラメータはコンパイル時定数でなければなりません
これは、C#バージョンでは機能しませんでした。デフォルトは定数でなければなりません。値をデフォルトにするにはオーバーロードを作成するか、値がnull
。の場合はnull許容にしてデフォルトに設定する必要があります。
オプション1:
public static Foo(string myString)
{
Foo(myString, TimeSpan.FromSeconds(1));
}
public static Foo(string myString, TimeSpan maxWait)
{
// do something
}
オプション2:
public static Foo(string myString, TimeSpan? maxWait = null)
{
TimeSpan maxWaitNotNull = maxWait ?? TimeSpan.FromSeconds(1);
// do something
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加