반응형
Java의 vararg 매개 변수에 대한 C # 대안이 있습니까?
Java에서 일했고 .Net 기술을 처음 접했습니다.
변수 입력 매개 변수를 허용하는 함수를 C #으로 선언 할 수 있습니까?
다음 Java 구문과 유사한 C # 구문이 있습니까?
void f1(String... a)
예, C #에는 varargs 매개 변수와 동일한 기능이 있습니다. 매개 변수 배열 이라고 하며 params
수정 자 와 함께 도입됩니다 .
public void Foo(int x, params string[] values)
그런 다음 다음과 같이 호출하십시오.
Foo(10, "hello", "there");
Java와 마찬가지로 이와 같이 변할 수있는 마지막 매개 변수 일뿐입니다. Java와 마찬가지로 매개 변수 params object[] objects
는 유형의 단일 인수가 object[]
다시 래핑 되는지 여부를 기억해야하므로 쉽게 혼동을 일으킬 수 있습니다 . nullable 형식의 경우와 마찬가지로의 단일 인수가 null
배열 참조 또는 단일 배열 요소로 처리 되는지 여부를 기억해야합니다 . ( 컴파일러는 필요한 경우에만 배열을 생성 한다고 생각 하지만 기억할 필요가없는 코드를 작성하는 경향이 있습니다.)
params 키워드를 사용하면 가변 개수의 인수를 사용하는 메서드 매개 변수를 지정할 수 있습니다.
매개 변수 선언에 지정된 유형의 쉼표로 구분 된 인수 목록 또는 지정된 유형의 인수 배열을 보낼 수 있습니다. 인수를 보낼 수도 없습니다.
메서드 선언에서 params 키워드 뒤에는 추가 매개 변수가 허용되지 않으며 메서드 선언에는 하나의 params 키워드 만 허용됩니다.
예제에서 볼 수 있듯이 메서드는 다음과 같이 선언됩니다.
public static void UseParams(params int[] list)
{
for (int i = 0; i < list.Length; i++)
{
Console.Write(list[i] + " ");
}
Console.WriteLine();
}
로 사용
UseParams(1, 2, 3, 4);
반응형
'programing' 카테고리의 다른 글
한 프로젝트에서 Bitbucket과 GitHub를 동시에 사용하는 방법은 무엇입니까? (0) | 2020.09.16 |
---|---|
Python 요청 라이브러리를 사용하여 대용량 파일 저장 (0) | 2020.09.16 |
CSS와 SCSS의 차이점은 무엇입니까? (0) | 2020.09.16 |
out 인수를 명시 적으로 버리는 방법은 무엇입니까? (0) | 2020.09.16 |
파이썬 내부 클래스의 목적은 무엇입니까? (0) | 2020.09.16 |