パラメーターが“ params”を使用するかどうかを判断するC#でリフレクションを使用していますか?
-
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);
}
所属していません StackOverflow