반응형
C #-빈 목록 사용 방법 선택적 매개 변수로
누군가 이것의 예를 제공 할 수 있습니까?
나는 시도 null
, string.Empty
및 객체 초기화하지만 기본값은 컴파일시 일정해야하기 때문에 그들은 작동하지 않습니다
null 병합 연산자와 빈 List 인스턴스를 사용하십시오.
public void Process(string param1, List<string> param2 = null) {
param2 = param2 ?? new List<String>();
}
문제는 "param2"가 null이고 새 참조를 할당하면 호출 컨텍스트에서 액세스 할 수 없다는 것입니다.
default
컴파일 시간 상수 ( null
의 경우)를 사용하여 다음을 수행 할 수도 있습니다 List<T>
.
void DoSomething(List<string> lst = default(List<string>))
{
if (lst == default(List<string>)) lst = new List<string>();
}
불가능하다. 대신 메서드 오버로딩을 사용해야합니다.
public static void MyMethod(int x, List<string> y) { }
public static void MyMethod(int x)
{
MyMethod(x, Enumerable<string>.Empty());
}
private void test(List<string> optional = null)
{
}
목록 대신 문자열에 대해 죄송합니다. Null은 4.0에서 잘 작동하며 Visual Studio 2010을 사용하고 있습니다.
private void test (params object [] params) {
}
참조 URL : https://stackoverflow.com/questions/6947470/c-how-to-use-empty-liststring-as-optional-parameter
반응형
'development' 카테고리의 다른 글
정수에서 바이트 배열로 (0) | 2021.01.10 |
---|---|
MongoDB 용 쿼리 IDE? (0) | 2021.01.10 |
네트워크 포트에서 수신하고 데이터를 텍스트 파일에 저장 (0) | 2021.01.10 |
C ++에서 런타임 동안 동적으로 함수를 만들 수 있습니까? (0) | 2021.01.10 |
-[MyClassName copyWithZone :] 인식 할 수없는 선택기가 인스턴스로 전송되었습니다. (0) | 2021.01.10 |