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로부터 파생된 클래스
출처
- https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/where-generic-type-constraint
- https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/where-clause
- https://m.blog.naver.com/PostView.nhn?blogId=beaqon&logNo=221301092125&proxyReferer=https:%2F%2Fwww.google.com%2F