, 당신은 배열로 메소드의 정의 된 변수를 얻을 수 있습니다 :C# 정의 된 변수를 목록으로 - 가능합니까? PHP에서
function test($a,$b){
print_r(
get_defined_vars()
);
}
는 C#으로 할 수 있습니까?
, 당신은 배열로 메소드의 정의 된 변수를 얻을 수 있습니다 :C# 정의 된 변수를 목록으로 - 가능합니까? PHP에서
function test($a,$b){
print_r(
get_defined_vars()
);
}
는 C#으로 할 수 있습니까?
리플렉션을 사용할 수 있습니다. 이 인라인을 수행 할 경우
, 당신은 먼저 현재있는 방법을 결정해야
var currentMethod = System.Reflection.MethodInfo.GetCurrentMethod();
그런 다음 해당 메서드의 매개 변수를 검색 할 수 있습니다.
foreach(ParameterInfo parameter in currentMethod.GetParameters())
{
var name = parameter.Name;
//...
}
get_defined_vars()는 메소드 매개 변수를 포함하지만 이에 국한되지 않습니다. –
Idd는 호출 된 범위 내에서 변수를 가져옵니다 (http://be2.php.net/manual/en/function.get-defined-vars.php). OP의 질문을 보면 현재의 방법의 매개 변수를 얻는 것이 충분합니다. –
뭔가 like ...
string a = "hello";
int b = 20;
DateTime c = DateTime.Now;
foreach (LocalVariableInfo variable in MethodInfo.GetCurrentMethod().GetMethodBody().LocalVariables)
{
Console.WriteLine(variable);
}
변수의 이름과 값까지 포함하지 않고, IEnumerator 및 변수 컬렉션과 같은 추가 변수를 가질 수있는 컴파일 된 코드를 참조합니다. – Kobi
+1; 메서드 매개 변수를 추가 할 수도 있습니다, [ala Christophe 's answer] (http://stackoverflow.com/questions/7495903/c-defined-variables-in-a-method-as-a-list-is-it- 가능/7495977 # 7495977). –
당신은 정교 할 수 있습니까? – Scott
[get_defined_vars] (http://php.net/manual/en/function.get-defined-vars.php)는 인수 및 전역 변수를 포함하여 현재 범위의 모든 변수를 반환합니다. 고맙게도 C#은 아무 것도 비슷하지 않습니다. 실제로 "범위"는 컴파일 타임이나 PHP에서와 같은 방식으로 런타임에 존재하는 것이 아닙니다. 너 정확히 뭘 하려구? 아마도 그것을 할 수있는 좋은 방법이 있습니다 ... – Kobi
@ Kobi - 나는 많은 매개 변수를 가진 WebService 메소드를 가지고 있습니다. 나는 이것을 웹 서비스 인 경우 목록으로 transffer하고 외부에서 유효성을 검사하려고합니다. 나는 그 (것)들을 다시 또 다시 선언하고 싶지 않다. Toda – SexyMF