일부 일반 메소드와 인터페이스가 있고 오버로드로 메소드를 구현하여 클래스의 인스턴스 또는 PK 값 (int 또는 GUID 중 하나를 허용하지만 다릅니다). 메소드 과부하에 대한 일반적인 제한 사항
나는 이러한 예와 유사한 방법에 추가 : 다음의 두 번째의 '해봐요'메소드 이름이 강조void DoSomething<TKey>(TKey key) where TKey: struct;
void DoSomething<TModel>(TModel model) where TModel : class;
하고, 오류가 'ISomeStuff가'이미 정의
유형입니다 같은 매개 변수 유형 인 으로 'DoSomething'이라고하는 멤버.
다른 유형의 매개 변수로 명확하게 정의한 것처럼 놀랍습니다. 하나는 클래스이고 다른 하나는 구조체입니다.
왜 서명을 다르게하는데 충분하지 않습니까?
가능한 복제 [일반 제약, 여기서 T : 구조체 어디 T : 클래스 (http://stackoverflow.com/questions/2974519/generic-constraints-where-t-struct-and-where- t- 클래스). Eric Lippert의 기사 [here] (http://blogs.msdn.com/b/ericlippert/archive/2009/12/10/constraints-are-not-part-of-the-signature.aspx)도 참조하십시오. –
@Frederic : 어떻게 그 하나를 그리워 했습니까! –
사이드 바에있는 "관련"창에서도이 항목을 선택하지 않았기 때문에 평소보다 더 까다로울 수 있습니다.) –