我有一个通用类
// Main Program
#include "stdafx.h"
#include "Eng1Class.h"
#include "Eng2Class.h"
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
现在有一个foo类的方法,它应该返回boo类型对象的索引。
public class foo <T> where T:boo
{
List<T> fooList;
}
不幸的是,这不起作用,因为booObject无法转换为Type T ...
我怎样才能获得索引??? 提前谢谢。
答案 0 :(得分:0)
您必须将参数booObject
的类型更改为泛型类型T.这是因为您定义了类型T派生形式boo
,但它仍然不是boo
}。这意味着,它可能是从goo
派生的某个类boo
。但是你会尝试从boo
类型的对象列表中获取类型为goo
的对象的索引 - 这是没有意义的。
此外,您忘记了方法的返回类型并实际返回评估的索引:
public class foo<T> where T : boo
{
List<T> fooList;
public int getIndex (T booObject)
{
int index = fooList.IndexOf (booObject);
return index;
}
}
有关泛型的更多信息,请查看this。