Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#의 선택적 매개변수는 무엇입니까?


기본적으로 메소드의 모든 매개변수는 필수입니다. 선택적 매개변수를 포함하는 메소드는 호출 시 인수를 강제로 전달하지 않습니다. 인수를 전달하지 않고 메서드를 호출한다는 의미입니다.

선택적 매개변수는 함수 정의의 기본값을 포함합니다. 호출 시 선택적 인수 값을 전달하지 않으면 기본값이 사용됩니다.

매개변수를 선택사항으로 만드는 다양한 방법이 있습니다.

기본값 사용

예시

using System;
namespace DemoApplication{
   class Demo{
      static void Main(string[] args){
         OptionalMethodWithDefaultValue(5);
         //Value2 is not passed as it is optional
         OptionalMethodWithDefaultValue(5, 10);
         //Value2 is passed
         Console.ReadLine();
      }
      public static void OptionalMethodWithDefaultValue(int value1, int value2 = 5){
         Console.WriteLine($"Sum is {value1 + value2}");
      }
   }
}

출력

위 코드의 출력은

Sum is 10
Sum is 15

위의 예에서 OptionalMethodWithDefaultValue(int value1, int value2 =5) value2 메서드는 기본값 5를 갖습니다. 따라서 호출하는 동안 value2에 대해 전달된 인수가 없으면 기본값 5를 사용하고 value2에 대해 인수가 전달되면 기본값은 무시됩니다.

선택적 속성 사용

예시

using System;
using System.Runtime.InteropServices;
namespace DemoApplication{
   class Demo{
      static void Main(string[] args){
         OptionalMethodWithDefaultValue(5);
         OptionalMethodWithDefaultValue(5, 10);
         Console.ReadLine();
      }
      public static void OptionalMethodWithDefaultValue(int value1, [Optional]int value2){
         Console.WriteLine($"Sum is {value1 + value2}");
      }
   }
}

출력

위 코드의 출력은

Sum is 5
Sum is 15

여기서 [Optional] 속성은 선택적 매개변수를 지정하는 데 사용됩니다.

또한 선택적 매개변수는 항상 매개변수 끝에 지정해야 합니다. 예를 들어 OptionalMethodWithDefaultValue(int value1 =5, int value2)는 예외를 발생시킵니다.

예시

using System;
namespace DemoApplication{
   class Demo{
      static void Main(string[] args){
         OptionalMethodWithDefaultValue(5);
         OptionalMethodWithDefaultValue(5, 10);
         Console.ReadLine();
      }
      public static void OptionalMethodWithDefaultValue(int value1 = 5, int value2){
         Console.WriteLine($"Sum is {value1 + value2}");
      }
   }
}

오류 - 선택적 매개변수는 모든 필수 매개변수 뒤에 나타나야 합니다.