C#ジェネリックは初めてなので、これを正しく行っているかどうかはわかりませんが、いくつかのエラーが発生します。解決していただければ幸いです。
namespace Microsoft.Outlook.ModernPrototype.ViewModels.ItemListView
{
public class ConversationMap<T> : Dictionary<T, ConversationListItem>
where T : ConversationKeyInterface<KeyEqualityInterface<T>>
{
public ConversationMap() : base(T.getEquality()) { } // breaks
}
public class KeyEqualityInterface<S> : IEqualityComparer<S>
where S : ConversationKeyInterface<S> { }
public interface ConversationKeyInterface<T>
{
static T getEquality();
}
}
壊れているとコメントした場所に注意してください。ここでは何らかの形式のリフレクションを使用する必要があると思いますが、ここでそのための最良の方法が何であるかはわかりません。