我正在尝试设置允许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
不能成为约束的额外功劳。