문제

C ++ 0X 소개 개념, 기본적으로 유형의 유형을 정의 할 수 있습니다. 유형에 필요한 속성을 지정합니다.

C# 지정하겠습니다 제약 "어디"조항.

그들 사이에 의미 적 차이가 있습니까?

고맙습니다.

도움이 되었습니까?

해결책

명심해야 할 한 가지는 C ++ 템플릿과 C# 제네릭이 정확히 동일하지 않다는 것입니다. 이것 좀 봐 대답 이러한 차이점에 대한 자세한 내용은.

C ++ 0X 개념을 설명하는 페이지에서 IDEA는 C ++에서 템플릿 유형이 특정 속성을 구현하도록 지정할 수 있다는 것 같습니다. C#에서, 제약 조건은 그보다 더 나아가서 일반 유형을 그 제약으로 강제로 강제합니다. 예를 들어 다음 C# 코드 :

public GenericList<T> where T : IDisposable

t 대신 사용 된 모든 유형이라고합니다 ~ 해야 하다 idisposable 인터페이스를 구현하십시오. 마찬가지로 다음 코드 :

public abstract class ABC {}
public class XYZ : ABC {}

public GenericList<T> where T : ABC

t 대신 사용 된 모든 유형은 ABC 형이거나 ABC에서 파생되어야한다고 말합니다.

C ++ 0X 개념 아이디어는 T 대신 사용 된 유형이 ABC (또는 idisposable)에 의해 정의 된 것과 동일한 속성을 가져야한다고 말합니다.

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