MVVM 패턴의 경우 두 가지 유형 사이의 관계를 저장하기 때문에 사용자 정의 비교기가있는 사전 (사전)이 있는데, 필요한 경우 가져 오는 데 도움이 필요합니다. 사용자 정의 EqualityComparer가 작동합니다.EqualityComparer <Type> GetHashCode 및 같음
GetHashCode 메서드가 Equals 메서드보다 먼저 호출되는 것을 발견했습니다. 해시 코드를 올바르게 가져올 수 있습니까? 예기치 않은 동작입니다. 사전에서 "Square"를 얻으려고 시도하면됩니다. , 그것은 "GeometricShape"의 값을 반환 이미에서 "GeometricShape는"난 당신이 비교자를 가질 수 없습니다
public class DictionaryComparer : EqualityComparer<Type>
{
public override bool Equals(Type x, Type y)
{
return x.IsAssignableFromType(y);
}
public override int GetHashCode(Type obj)
{
return obj.GetHashCode();
}
}
이 질문에 대한 설명이 필요합니다. 당신이 사전에 말해 주려고 노력하고 있습니까? 만약 당신이 X (사전에없는) 키에 접근하고 X '키를 가지고 있다면, 나중에 값을 돌려 주어야합니까? 그렇다면 사전에 이미있는 다른 키에 할당 할 수있는 키를 추가 할 수 없다는 사실을 알고 있습니까? –
나는 직업에 대해 잘못된 도구를 사용하려고한다는 느낌이 들지만 (틀릴 수도 있지만). 당신이 이걸로 무엇을 이루려고하는지 설명해 주시겠습니까? –
MVVM 및 사전. 그것은 코드 냄새입니다. 먼저 KeyedCollections로 전환하거나 대신 키 생성 된 컬렉션의 필요성을 제거 할 것을 제안합니다. 당신이 평등하려고하는 것에 대해서는 ... 확실하지 않습니다. – Will