구조체의 인수는 선택적 인수를 지정 하는

페이지 생성 날짜 :

「 선택적 인수 」를 사용 하 여 인수의 개수가 다른 메서드를 오버 로드 하지 않고 인수에 초기값을 줄 수 있게 됩니다.

그러나, 선택적 인수에는 「 10 」 이나 「 "Sample" "null 」 등의 상수 이며 프로그램이 실행 될 때 결정 되는 new로 만든 물건이 나 static readonly로 정의 된 값은 사용할 수 없습니다.

구조체를 인수로 갖는 경우도 마찬가지입니다. 예를 들어 형식을 IntPtr 하면 IntPtr.Zero를 초기 값으로 지정할 수 없습니다. 0을 지정 하는 것도 불가능 한 구조 이므로 null을 지정할 수 없습니다. (Nullable를 사용 하면 null을 지정할 수 있지만 인수 형식이 변화 하기 때문에 제외 합니다)

선택적 인수로 구조체를 사용 하는 경우 「 default (T) 」를 사용할 수 있습니다. 이것은 new T ()에서 만든 값과 동일 합니다.

public void DoAction(IntPtr handle = default(IntPtr))
{
  // 処理
}

어디까지 나 구조체의 값으로 0 또는 null을 지정할 수 있을 뿐 이므로, 별도의 초기 값을 제공 하려는 경우 메서드를 오버 로드 하십시오.