我有以下代码:
interface IConverter<T, U>
{
U Convert(T obj);
}
interface IBusinessEntityConveter<T, U> : IConverter<T, U>
where U : BusinessEntity
{
}
class LookupConveter<B> : IBusinessEntityConveter<Lookup, B>, IConverter<Lookup, Moniker>
where B : BusinessEntity, new()
{
#region IConverter<Lookup, Moniker> Members
public Moniker Convert(Lookup obj)
{
//...
}
#endregion
#region IConverter<Lookup,B> Members
public B Convert(Lookup obj)
{
//...
}
#endregion
}我得到了这个错误:
错误2 '
Convertors.LookupConveter<B>‘不能同时实现'Convertors.IConverter<Microsoft.Crm.Sdk.Lookup,B>’和'Convertors.IConverter<Microsoft.Crm.Sdk.Lookup,Microsoft.Crm.Sdk.Moniker>‘,因为它们可能统一用于某些类型的参数替换。
有什么方法可以说明T不是商业实体吗?
发布于 2010-10-18 13:20:06
不,恐怕不行。您所拥有的唯一选项在这里列出,类型参数的约束。概括而言,这些建议是:
发布于 2010-10-18 13:19:26
不,没有“消极”的限制。
https://stackoverflow.com/questions/3959508
复制相似问题