where 키워드

where 키워드 사용 예시

  • 탬플릿 클래스를 선언할 때 특정 클래스만 일반화 시키도록 제한

    // 이럴 거면 왜 탬플릿으로 만드는지는 의문
    class MyList<T> where T : MyClass
    {
      // ...
    }
    
  • 탬플릿 함수를 선언할 때 특정 클래스만 사용하도록 제한

    void CopyArray<T>(T[] source, T[] target) where T : struct
    {
      // ...
    }
    
  • 기타 여러 제약이 아래와 같이 가능

    제약 설명
    where T : struct T는 값 형식
    where T : class T는 참조 형식
    where T : new() T는 매개 변수가 없는 생성자를 가짐
    where T : MyClass T는 MyClass의 파생 클래스
    where T : MyInterface T는 MyClass의 파생 인터페이스
    where T : U T는 다른 매개 변수 U로부터 파생된 클래스

출처

Categories: ,

Updated: