C ++ 0X 개념과 C# 제약 조건의 차이점은 무엇입니까?
-
20-08-2019 - |
문제
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)에 의해 정의 된 것과 동일한 속성을 가져야한다고 말합니다.
제휴하지 않습니다 StackOverflow