我新的C#和我有以下问题:创建在C#类型“类型”的对象的自己的集合类型
我需要创建一个TypeCollection,从集合继承和对象的类型这里是我创建的一些类型。在InsertItem()重载的方法中,我想检查对象是否来自我创建的特定类型层次结构,否则我会抛出异常。
的代码片段连接:
public class ObjectTypeCollection<Type> : Collection<Type>
{
protected override void InsertItem(int index, Type item)
{
if(!(Utility.IsFDTObject(item.GetType())))
{
throw new ArgumentException(string.Format("Type {0} is not valid", item.ToString()));
}
base.InsertItem(index, item);
}
}
的问题在这里与项目实例。它没有任何方法可以让我获得当前传入的类型。 GetType()不会返回我已经传递的类型。目前,我已经使用:
System.Type typ = System.Type.GetType(item.ToString());
获取类型,然后将其传递给Utility方法。这工作正常。这是正确的方法吗?
你能帮我吗?
继承列表'GetType'得到你是一个项目*的类型*。 “我通过的类型”是什么意思? – Jon 2012-04-23 09:50:36
通过使用'Type'作为通用参数名,你完全困惑了我。 – Botz3000 2012-04-23 10:03:56
最后回复解决了我的问题。我使用IsAssignableFrom()来达到要求。我使用类型,因为它应该是一个类型的集合。 – user1064490 2012-04-23 11:08:44