web-dev-qa-db-ja.com

C#.netでオプションパラメータを宣言するにはどうすればよいですか?

いくつかのアクションを実行するためにメソッドを使用していますが、メソッドのオーバーロード以外に、C#のオプションパラメーターを使用してメソッドを1回だけ記述したいですか?

Visual Studio 2010の新機能

名前付きおよびオプションの引数

例えば

public void ExampleMethod(int required, string optionalstr = "default string",
int optionalint = 10)
{
}
38
Richard Friend

次のコードを見てください

使用するライブラリ

using System.Runtime.InteropServices;

関数宣言

private void SampleFunction([Optional]string optionalVar, string strVar)
{
}

そして関数を呼び出す間、あなたはこのようにすることができます

SampleFunction(optionalVar: "someValue","otherValue");

OR

SampleFunction("otherValue");

それが役に立ったら返信してください。

14
Akshay

はい、使用します オプションのパラメーター (C#4で導入)。

public void ExampleMethod(int required, string optionalstr = "default string",
    int optionalint = 10)

仮パラメーターにデフォルト値を指定すると、それはオプションになります。

以前のバージョンでは、オーバーロードが唯一のオプションです。

9
Oded

それらはC#2010で導入されました(つまり、一般にVS2010とFramework 4.0)。 名前付きおよびオプションの引数(C#プログラミングガイド) を参照してください。

以前のC#バージョンでは、オーバーロード(またはparam配列)に悩まされていました。

4
Reddog

C#4.を使用する場合はそうです。

その後、次のようにメソッドを定義できます。

public void Foo( int a = 3, int b = 5 ){
  //at this point, if the method was called without parameters, a will be 3 and b will be 5.
}
2