C# 类型参数继承冲突的约束

C# 类型参数继承冲突的约束,c#,constraints,abstract-class,C#,Constraints,Abstract Class,我有两个抽象类,如下所示: public abstract class MyBaseClass<T> { private T ID; private string Name; private bool isActive; protected MyBaseClass() { Initialize(0, String.Empty, false); } protected MyBaseClass(object ID, string Name, bool isActive)

我有两个抽象类,如下所示:

public abstract class MyBaseClass<T> 
{

private T ID;
private string Name;
private bool isActive;

protected MyBaseClass()
{
     Initialize(0, String.Empty, false);
}
protected MyBaseClass(object ID, string Name, bool isActive)
{
     Initialize(ID, Name, isActive);
}
protected virtual void Initialize(object ID, string Name, bool isActive)
{
   Type t = typeof(T);
   if(t == typeof(string)))
       this.ID = (T)(object)ID.ToString();
   else
       this.ID = (T)ID
   this.Name = Name;
   this.isActive = isActive;
}
}

public abstract class MyList<TKey, TItem> where TItem : MyBaseClass<TKey> {}
公共抽象类MyBaseClass
{
私人T-ID;
私有字符串名称;
私人住宅是活跃的;
受保护的MyBaseClass()
{
初始化(0,String.Empty,false);
}
受保护的MyBaseClass(对象ID、字符串名称、bool isActive)
{
初始化(ID、名称、isActive);
}
受保护的虚拟void初始化(对象ID、字符串名称、bool isActive)
{
类型t=类型(t);
if(t==typeof(string)))
this.ID=(T)(对象)ID.ToString();
其他的
this.ID=(T)ID
this.Name=Name;
this.isActive=isActive;
}
}
公共抽象类MyList,其中TItem:MyBaseClass{}
T
TKey
可以是
string
或数字类型

我在MyList上发现以下错误:

类型参数TItem继承冲突的约束 “MyBaseClass”和“object”


这个错误是什么意思?我如何修复它?

您能在代码示例中提供更多细节吗?您提供的两行代码在我的机器上按原样编译(正如人们所期望的那样),因此我怀疑故事中还有更多内容……我在原始Post中添加了MyBaseClass的内容,不包括第
行的额外括号,如果(t==typeof(string))
,这仍然可以编译。相同。对于我来说,使用.net 4.5很好。您可能可以通过以下链接了解此问题背后的根本原因: