パラメーターが“ params”を使用するかどうかを判断するC#でリフレクションを使用していますか?

StackOverflow https://stackoverflow.com/questions/627656

  •  06-07-2019
  •  | 
  •  

質問

このメソッドシグネチャを検討してください:

public static void WriteLine(string input, params object[] myObjects)
{
    // Do stuff.
}

WriteLineメソッドの" myObjects"を確認するにはどうすればよいですか? pararameterはparamsキーワードを使用し、可変引数を取ることができますか?

役に立ちましたか?

解決

[ParamArrayAttribute] が存在するかどうかを確認します。

params を持つパラメーターは常に最後のパラメーターになります。

他のヒント

ParameterInfo を確認します。 = "http://msdn.microsoft.com/en-us/library/system.paramarrayattribute.aspx" rel = "noreferrer"> ParamArrayAttribute が適用されました:

static bool IsParams(ParameterInfo param)
{
    return param.GetCustomAttributes(typeof (ParamArrayAttribute), false).Length > 0;
}

わずかに短く読みやすい方法:

static bool IsParams(ParameterInfo param)
{
    return param.IsDefined(typeof(ParamArrayAttribute), false);
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top