반응형
선택적 매개 변수의 기본값으로 빈 배열 전달
이 질문에 이미 답변이 있습니다.
- C # 선택적 매개 변수 3 답변 의 기본값 설정
빈 배열을 기본값으로 사용하는 선택적 배열을 취하는 함수를 어떻게 정의합니까?
public void DoSomething(int index, ushort[] array = new ushort[] {},
bool thirdParam = true)
결과 :
'배열'의 기본 매개 변수 값은 컴파일 시간 상수 여야합니다.
개체 참조의 컴파일 타임 상수를 만들 수 없습니다.
사용할 수있는 유일한 유효한 컴파일 타임 상수는 null
이므로 코드를 다음과 같이 변경하십시오.
public void DoSomething(int index, ushort[] array = null,
bool thirdParam = true)
그리고 당신의 방법 내에서 다음을 수행하십시오.
array = array ?? new ushort[0];
배열을 마지막 인수로 만들 수 있다면 다음과 같이 할 수도 있습니다.
public void DoSomething(int index, bool wasThirdParam = true, params ushort[] array)
컴파일러는 지정되지 않은 경우 빈 배열을 자동으로 전달하며, 배열을 단일 인수로 전달하거나 요소를 가변 길이 인수로 직접 메서드에 넣을 수있는 유연성이 추가됩니다.
나는 그것이 오래된 질문이라는 것을 알고 있으며이 답변은 컴파일러에 의해 부과 된 제한을 피하는 방법을 직접 해결하지 않지만 메서드 오버로딩은 대안입니다.
public void DoSomething(int index, bool thirdParam = true){
DoSomething(index, new ushort[] {}, thirdParam);
}
public void DoSomething(int index, ushort[] array, bool thirdParam = true){
...
}
반응형
'your programing' 카테고리의 다른 글
보호 된 생성자의 실제 용도는 무엇입니까? (0) | 2020.10.14 |
---|---|
Asp.Net MVC의 DataAnnotations StringLength에있는 텍스트 상자의 maxlength 특성 (0) | 2020.10.14 |
R로 빌드 된 모델 재사용 (0) | 2020.10.14 |
기호와 일치하는 정규식 :! $ % ^ & * () _ + | ~-=`{} [] : "; '<>?,. / (0) | 2020.10.14 |
API <21의 드로어 블 틴팅 (0) | 2020.10.13 |