문제

차이점을보기 위해 리플렉터를 가동하지는 않았지만 Func<T, bool>Predicate<T>를 비교할 때 정확히 동일한 컴파일 된 코드를 볼 것으로 기대합니다.

일반 매개 변수를 취하고 bool을 반환하므로 차이가 없다고 생각합니까?

도움이 되었습니까?

해결책

동일한 서명을 공유하지만 여전히 유형이 다릅니다.

다른 팁

Robert S.는 완전히 정확합니다.예 :- 라코 디스

더 유연한 Func 제품군은 .NET 3.5에만 제공되었으므로 필요에 따라 이전에 포함해야했던 유형을 기능적으로 복제합니다.

(Predicate라는 이름과 함께 소스 코드 독자에게 의도 된 사용법을 전달합니다.)

제네릭이 없어도 서명과 반환 유형이 동일한 다른 대리자 유형을 가질 수 있습니다.예 : 라코 디스

위의 예에서 두 가지 비 제네릭 유형은 동일한 서명 및 반환 유형을 갖습니다.(실제로 Predicate<string>Func<string, bool>와 동일합니다).하지만 제가 말씀 드리려고했지만 둘의 "의미"가 다릅니다.

이것은 내가 class Car { string Color; decimal Price; }class Person { string FullName; decimal BodyMassIndex; }의 두 클래스를 만드는 것과 다소 비슷합니다. 두 클래스가 모두 stringdecimal를 가지고 있다고해서 그것이 "동일한"유형이라는 것을 의미하지는 않습니다.

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