반응형
C # 4.0, 선택적 매개 변수 및 매개 변수가 함께 작동하지 않음
선택적 매개 변수와 매개 변수가 함께있는 메소드를 어떻게 만들 수 있습니까?
static void Main(string[] args)
{
TestOptional("A",C: "D", "E");//this will not build
TestOptional("A",C: "D"); //this does work , but i can only set 1 param
Console.ReadLine();
}
public static void TestOptional(string A, int B = 0, params string[] C)
{
Console.WriteLine(A);
Console.WriteLine(B);
Console.WriteLine(C.Count());
}
현재 유일한 옵션은 TestOptional을 오버로드하는 것입니다 (C # 4 이전에했던 것처럼). 선호되지는 않지만 사용 시점에서 코드를 정리합니다.
public static void TestOptional(string A, params string[] C)
{
TestOptional(A, 0, C);
}
public static void TestOptional(string A, int B, params string[] C)
{
Console.WriteLine(A);
Console.WriteLine(B);
Console.WriteLine(C.Count());
}
시험
TestOptional("A", C: new []{ "D", "E"});
이것은 나를 위해 일했습니다.
static void Main(string[] args) {
TestOptional("A");
TestOptional("A", 1);
TestOptional("A", 2, "C1", "C2", "C3");
TestOptional("A", B:2);
TestOptional("A", C: new [] {"C1", "C2", "C3"});
Console.ReadLine();
}
public static void TestOptional(string A, int B = 0, params string[] C) {
Console.WriteLine("A: " + A);
Console.WriteLine("B: " + B);
Console.WriteLine("C: " + C.Length);
Console.WriteLine();
}
반응형
'program story' 카테고리의 다른 글
지속적 통합 빌드에서 헤드리스로 JavaScript 단위 테스트 실행 (0) | 2020.12.09 |
---|---|
Java 원격 디버깅, 기술적으로 어떻게 작동합니까? (0) | 2020.12.09 |
foreach는 PHP에서 배열 순서로 반복되도록 보장됩니까? (0) | 2020.12.09 |
Scala에서 메소드를 정의하는 9 가지 방법? (0) | 2020.12.09 |
프로토 타입을 통해 메서드를 정의하는 것과 생성자에서 이것을 사용하는 것-정말 성능 차이? (0) | 2020.12.09 |