2013-06-07 1 views
3

내가 컴파일러 경고를 해결하기 위해 노력하고 있어요에서 형식 매개 변수와 같은 이름을 가진 :경고를 해결하는 방법 : TKEY는 외부 유형

protected class KeyedDictionaryEntryCollection<TKey> : KeyedCollection<TKey, DictionaryEntry> { 

     public KeyedDictionaryEntryCollection() {} 

     public KeyedDictionaryEntryCollection(IEqualityComparer<TKey> comparer) : base(comparer) {} 

     protected override TKey GetKeyForItem(DictionaryEntry entry) { 
      return (TKey) entry.Key; 
     } 
    } 

:

Type parameter 'TKey' has the same name as the type parameter from outer type 'Common.Core.ObservableDictionary<TKey,TValue>' 

이 문제의 코드는 첫 번째 TKey를 보여줍니다.

어떻게 해결할 수 있습니까? 코드는 정상적으로 작동하지만 모든 컴파일러 경고를 해결하기 위해 노력하고 있습니다.

답변

9

이것은 일반 클래스의 내부 클래스이기 때문입니다. 컴파일러는 바깥 클래스 스펙과 동일한 이름을 사용하고 있다고 경고합니다.이 클래스는 효과적으로 "숨겨집니다". 내부 클래스의 스펙을 제거함으로써 제거 할 수 있습니다 (새로운 일반 유형을 도입하지 않으려는 경우는 제외).

+0

감사합니다. –

관련 문제