我正在尝试设置允许Object作为我的 TValue 的自定义 IDictionary。
这是它的样子:
public class NullTolerantDictionary<TKey, TValue> 
             : Dictionary<TKey, TValue> where TValue : class
{
    public TValue this[TKey key]
    {
        get
        {
            TValue value;
            if (TryGetValue(key, out value))
            {
                return value;
            }
            else
            {
                return DependencyProperty.UnsetValue;
            }
        }        
    }
}
当它编译时它说:
无法将类型“object”隐式转换为“TValue”。
所以为了解决这个问题,我将我的类型约束更改为:
where TValue : object
(object而不是类)
然后我收到这条消息:
约束不能是特殊类“对象”
我该如何解决这个问题?
解释为什么object不能成为约束的额外功劳。