문제

최근에 나는 제네릭의 맥락에서 "알몸 유형 제약"이라는 용어를 읽었습니다. 무슨 뜻인가요? 우리는 그것을 어디에서 사용합니까?

도움이 되었습니까?

해결책

에서 MSDN:

Constraint          Description

where T : U         The type argument supplied for T must be or derive from
                    the argument supplied for U. This is called a naked type
                    constraint.

일반 유형 매개 변수를 제약으로 사용하면 알몸 유형 제약 조건이라고합니다. 알몸 유형 제약 조건은 자체 유형 매개 변수가있는 멤버 기능이 다음 예에 표시된 것처럼 해당 매개 변수를 포함 유형의 유형 매개 변수로 제한해야 할 때 유용합니다.

class List<T>
{
    void Add<U>(List<U> items) where U : T {/*...*/}
}

다른 팁

제쳐두고,이 다소 거친 용어가 MSDN 문서로 만들어 졌다는 것은 기괴한 일입니다. 우리는 C# 컴파일러 팀에서 이러한 제약을 "알몸 유형 제약 조건"이라고 부르지 않으며 충격을 받았습니다. 몇 년 전부터 이것이 문서의 말이라는 것을 발견했습니다. 우리는 보통 "유형 매개 변수 제약 조건"이라고 부릅니다. 나는이 용어가 처음에 어떻게 문서에 들어 갔는지 전혀 모른다. 아마 흥미로운 이야기가있을 것입니다.

"일반 유형 매개 변수가 제약 조건으로 사용되는 경우,이를 알몸 유형 구속 조건이라고합니다. 자체 유형 매개 변수가있는 멤버 기능이 해당 매개 변수를 포함 된 유형의 유형 매개 변수로 제한해야 할 때 알몸 유형 제약 조건이 유용합니다."

http://msdn.microsoft.com/en-us/library/d5x73970.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top