-10

这是我想做的

我有一堂课

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

现在在计数函数中我想传递一个类名现在当我这样做时obj.getType()我得到一个错误。

4

2 回答 2

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>(...)
    }
}
于 2013-06-21T15:01:55.287 回答
1

我想我现在明白了。您正在尝试获取的类型说明符obj

我的实际建议是重新考虑您的设计和/或使用像 FishBasketGordo 说的泛型,

但是如果你必须这样做,我知道的最好的方法是单独检查 obj 可以是的不同类型

public int Count(object obj)
{
    if(obj is A)
    {
        conn.table<A>.....
    }
    else if(obj is B)
    {
        conn.table<B>.....
    }
    ...
}
于 2013-06-21T15:04:43.053 回答