Program Tip

여러 선택적 매개 변수를 C # 함수에 전달

programtip 2020. 12. 3. 19:08
반응형

여러 선택적 매개 변수를 C # 함수에 전달


여러 매개 변수를 허용하도록 C # 함수를 설정하는 방법이 있습니까? 예를 들어 다음이 모두 작동하도록 기능을 설정할 수 있습니까?

x = AddUp(2, 3)

x = AddUp(5, 7, 8, 2)

x = AddUp(43, 545, 23, 656, 23, 64, 234, 44)

수정 자 와 함께 매개 변수 배열사용합니다 params.

public static int AddUp(params int[] values)
{
    int sum = 0;
    foreach (int value in values)
    {
        sum += value;
    }
    return sum;
}

적어도 하나의이 있는지 확인하려면 (빈 배열이 아닌) 별도로 지정하십시오.

public static int AddUp(int firstValue, params int[] values)

( 구현에서 시작 sum하려면 firstValue설정하십시오 .)

일반적인 방법으로 nullity에 대한 배열 참조도 확인해야합니다. 메서드 내에서 매개 변수는 완벽하게 일반적인 배열입니다. 매개 변수 배열 수정자는 메소드 호출 할 때만 차이를 만듭니다 . 기본적으로 컴파일러는 다음을 수행합니다.

int x = AddUp(4, 5, 6);

다음과 같이

int[] tmp = new int[] { 4, 5, 6 };
int x = AddUp(tmp);

당신은 할 수 완벽하게 정상적인 배열하지만 그것을 호출 - 후자의 구문뿐만 아니라 소스 코드에 유효 있도록.


C # 4.0은 다른 상황에서 유용 할 수있는 선택적 매개 변수도 지원합니다. 기사를 참조 하십시오.


1. 과부하 기능을 만들 수 있습니다.

SomeF(strin s){}   
SomeF(string s, string s2){}    
SomeF(string s1, string s2, string s3){}   

추가 정보 : http://csharpindepth.com/Articles/General/Overloading.aspx

2. 또는 params로 하나의 함수를 만들 수 있습니다.

SomeF( params string[] paramArray){}
SomeF("aa","bb", "cc", "dd", "ff"); // pass as many as you like

추가 정보 : https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/params

3. 또는 간단한 배열을 사용할 수 있습니다.

Main(string[] args){}

참고 URL : https://stackoverflow.com/questions/1996426/pass-multiple-optional-parameters-to-ac-sharp-function

반응형