무한 매개 변수로 메소드를 만드시나요?
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
호출하는 SumThemAll
로 int[]
불리는 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
'programing' 카테고리의 다른 글
창이 최대화 / 최대화 해제되는 이벤트 (0) | 2021.01.17 |
---|---|
String. 소수 자리없이 천 단위 구분 기호를 사용하거나 작은 정수의 경우 선행 0을 사용하도록 정수 형식 지정 (0) | 2021.01.17 |
단일 editText에서 포커스를 제거하는 방법 (0) | 2021.01.17 |
탭 순서에서 html 요소를 명시 적으로 제외 (0) | 2021.01.17 |
Ruby에는 스택, 대기열, 연결 목록, 맵 또는 세트와 같은 컨테이너가 있습니까? (0) | 2021.01.17 |