2011-12-07 2 views
0

func_get_arg (php)에 상응하는 내용이 C#입니까?C#에서 func_get_arg와 동일합니까?

func_get_arg (INT의 $의 arg_num는) :

는 사용자 정의 함수의 인수 목록에서 지정된 인수를 가져옵니다.

이 함수는 func_get_args() 및 func_num_args()와 함께 사용하여 사용자 정의 함수에서 가변 길이 인수 목록을 허용 할 수 있습니다.

그것은 기본적으로

감사

+0

다음을 확인하십시오. http://stackoverflow.com/questions/214086/how-can-you-get-the-names-of-method-parameters-in-c –

+0

나는 손에서 아무것도 모릅니다. 이것은 C#의 기본 프레임 워크 내에서 이것을 수행합니다. 비슷한 종류의 의존성 삽입 프레임 워크가 있습니다. 당신이 성취하고자하는 것을 아는 것이 도움이 될 것입니다. –

+0

당신이하고 싶은 것을 물어보십시오. 어떻게 하시겠습니까? :) –

답변

3

C#을 정적 기능 서명 문제 때문에, 입력 된 ... 인덱스가 인수 값을 얻기 위해 사용될 수 있다는 것을 의미한다. 아무런 수의 인수로도 메소드를 호출 할 수는 없습니다. 실제로는 func_get_arg이 필요하지 않습니다.

당신은 방법이있는 경우 등 아주 가까이 얻을 수 말했다이 하나

void MyMethod(params object[] args) 
{ 
    var indexOfArgument = 42; // or whatever 
    var valueOfArgument = args[indexOfArgument]; // should also check array bounds 
} 
물론

모든 인수가 많은 당신이 그들과 함께 할 수있는이 아니다 System.Object로 입력하는 경우 만에서 구문상의 관점이 가깝습니다 (더하기 어떤 종류의 T에 대해서도 params T[] args을 허용하는 메서드를 사용할 수도 있습니다). C#에서

+0

params는 무엇입니까? – Darren

+0

@Darren : MSDN에서 : "[params] (http://msdn.microsoft.com/en-us/library/w5zay9db(v= VS.100) .aspx) 키워드를 사용하면 다음과 같은 메서드 매개 변수를 지정할 수 있습니다. 변수의 수를 취합니다. " – Jon

+0

고마워요,이 일을하고 다른 noes도 참조하십시오. – Darren

0

는 방법 "__arglist()" 있다 또는 당신은 쉽게 기능이

int Average(params int[] ints) 
{ 
int total = 0; 
foreach(int i in ints) // loop to the number of parameters 
    total += i; 
return (ints.Length > 0 ? total/ints.Length : 0); 
} 
0

같은 매개 변수의 변수 번호를 내가 알고있는 것처럼, PHP에서 func_get_arg의 목적은하는 것입니다을 수용 할 수 있습니다 함수에 대한 가변 개수의 인수. 방법 내에서

public void Foo(string realArg, int anotherRealArg, params int[] variableArgs) 
{ 
    Console.WriteLine("My real string argument was " + realArg); 
    Console.WriteLine("My real integer argument was " + anotherRealArg); 
    Console.WriteLine("And I was given " + variableArgs.Length + " extra arguments"); 
} 

// Usage 
Foo("Bar", 1, 2, 3, 4, 5); 

variableArgs 정규 배열, 다음은 C#에서 그에게 equivilent입니다. 액세스하기 전에 길이를 확인하여 IndexOutOfRangeException을 얻지 못하게해야합니다.