我是 C# 新手,遇到以下问题:
我需要创建一个 TypeCollection,它继承自 Collection,这里的对象类型是我创建的一些类型。
在 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 方法。这工作正常。这是正确的方法吗?
你能帮帮我吗?