다음 메서드가 3 개있는 경우 C# 을 사용하여 매개 변수 수가 다른 경우에도 모든 메서드의 매개 변수 값을 가져 오려고합니다.숫자 또는 유형에 관계없이 메서드의 매개 변수 값 가져 오기 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);
}
}
UPDATE와 같은 변수의 수 있지만 값없이 얻을 수있는 지점에 도달 : I를 이용하여 다른 방법을 발견
을 (PARAMS 오브젝트 []의 값) 다음과 같은 메서드 매개 변수로
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;
}
당신은 반사를 통해 * 매개 변수의 * 값을 얻을 수 없습니다. –
다른 방법을 사용하여 값을 가져 오는 방법은 반사입니까? – msytNadeem
제 지식은 아니요. –