这是我想要做的事情
我有一个班级
class A {}
另一个类中有一个函数
class B
{
int count(object obj)
{
conn.table<T>..... //what I want is conn.table<A>, how to do with obj as object passed to the function
}
}
这就是我打电话的方式
B b = new B();
b.Count(a); // where a is the object of class A
现在在count函数中我想传递一个classname
现在当我obj.getType()
时,我收到错误。
答案 0 :(得分:3)
class B
{
int count<T>(T obj) where T : A
{
// Here you can:
// 1. Use obj as you would use any instance or derived instance of A.
// 2. Pass T as a type param to other generic methods,
// such as conn.table<T>(...)
}
}
答案 1 :(得分:1)
我想我现在明白了。您正在尝试获取obj
我的实际建议是重新考虑你的设计和/或使用像FishBasketGordo这样的仿制品,
但是如果你必须这样做,我知道的最好的方法是分别检查obj可以的不同类型
public int Count(object obj)
{
if(obj is A)
{
conn.table<A>.....
}
else if(obj is B)
{
conn.table<B>.....
}
...
}