次のように3つのメソッドがある場合など、C#を使用してパラメーターの数が異なる場合でも、メソッドのパラメーターの値を取得したい:
public void method1 (string param1)
{
List<string> parametervalues = getParameters(this.Method);
}
public void method2 (int param1, string param2)
{
List<string> parametervalues = getParameters(this.Method);
}
public void method3 (string param1, int param2, bool param3)
{
List<string> parametervalues = getParameters(this.Method);
}
したがって、getParameters メソッドでは、メソッド名を受け取り、パラメーターの数に関係なく、パラメーターの値を文字列のリストとして返します。
パラメータの数を取得できるようになりましたが、次のように値はありません
var method = MethodInfo.GetCurrentMethod();
var parameters = method.GetParameters();
List<string> parameterList = new List<string>();
if (parameters.Length > 0)
{
foreach (var p in parameters)
{
parameterList.Add(p.Name);
}
}
アップデート:
次のように (params object[] values) をメソッドパラメーターとして使用する別の方法を見つけました
method1(string a, string b, string c)
{
list<string> = getParameterasList(a,b,c);
}
getParameterasList(params object[] values)
{
List<string> parameterList = new List<string>();
if (values.Length > 0)
{
foreach (var v in values)
{
parameterList.Add(v.ToString());
}
}
return parameterList;
}