programing

무한 매개 변수로 메소드를 만드시나요?

yoursource 2021. 1. 17. 12:26
반응형

무한 매개 변수로 메소드를 만드시나요?


C #에서는 다음을 수행 할 수 있습니다.

foo = string.Format("{0} {1} {2} {3} ...", "aa", "bb", "cc" ...);

이 메소드 Format()는 문자열의 형식을 지정하는 첫 번째 방법이고 나머지는 문자열에 넣을 값인 무한 매개 변수를 허용합니다.

오늘 저는 문자열 세트를 가져 와서 테스트해야하는 상황에 이르렀습니다. 그리고 나서이 언어 기능을 기억했지만 실마리가 없었습니다. 웹 검색에 몇 번 실패한 후 배열 만 얻는 것이 더 현명하다는 것을 깨달았습니다.

Q : 무한 매개 변수를 받아들이는 함수를 만들려면 어떻게해야합니까? 그리고 어떻게 사용합니까?


params키워드.

다음은 그 예입니다.

    public int SumThemAll(params int[] numbers)
    {
        return numbers.Sum();
    }

    public void SumThemAllAndPrintInString(string s, params int[] numbers)
    {
        Console.WriteLine(string.Format(s, SumThemAll(numbers)));
    }

    public void MyFunction()
    {
        int result = SumThemAll(2, 3, 4, 42);
        SumThemAllAndPrintInString("The result is: {0}", 1, 2, 3);
    }

코드는 다양한 것을 보여줍니다. 우선 params키워드가 있는 인수 는 항상 마지막이어야합니다 (함수 당 하나만있을 수 있음). 또한 params두 가지 방법으로 인수를 받는 함수를 호출 할 수 있습니다 . 첫 번째 방법은 MyFunction각 숫자가 단일 인수로 추가되는 첫 번째 줄에 설명되어 있습니다. 도시되어 그러나, 또한 어레이 호출 할 수 SumThemAllAndPrintInString호출하는 SumThemAllint[]불리는 numbers.


params 키워드를 사용하십시오. 용법:

public void DoSomething(int someValue, params string[] values)
{
    foreach (string value in values)
        Console.WriteLine(value);
}

params 키워드를 사용하는 매개 변수는 항상 끝에옵니다.


몇 가지 메모.

매개 변수는 string [] 또는 object []와 같은 배열 유형에 표시되어야합니다.

w / params로 표시된 매개 변수는 메소드의 마지막 인수 여야합니다. 예를 들어 Foo (문자열 input1, object [] 항목).


params키워드를 사용하십시오 . 예를 들면

static void Main(params string[] args)
{
    foreach (string arg in args)
    {
        Console.WriteLine(arg);
    }
}

params 키워드 를 사용하여이를 수행 할 수 있습니다 .

작은 예 :

public void AddItems(params string[] items)
{
     foreach (string item in items)
     { 
         // Do Your Magic
     }
}

    public static void TestStrings(params string[] stringsList)
    {
        foreach (string s in stringsList){ } 
            // your logic here
    }

 public string Format(params string[] value)
 {
            // implementation
 }

params 키워드가 사용됩니다.


function void MyFunction(string format, params object[] parameters) {

}

Instad of object [] 당신은 당신이 좋아하는 모든 유형을 사용할 수 있습니다. params 인수는 항상 줄의 마지막이어야합니다.

참조 URL : https://stackoverflow.com/questions/2435757/creating-methods-with-infinite-parameters

반응형