首页 新闻 搜索 专区 学院

c#定义一个泛型方法

0
悬赏园豆:5 [已解决问题] 解决于 2013-03-28 10:27

现在我有这样一个需求 有一个方法参数 List<T>  这个参数的个数是不定的 形如:

1    public static void InsertData<T>(params ImportOracleParameter<T>  parameter)

这个 ImportOracleParameter   是这样定义的

 1   public class ImportOracleParameter<T>
 2     {
 3         private Dictionary<string, List<T>> listColumn;
 4 
 5         public Dictionary<string, List<T>> ListColumn
 6         {
 7             get { return listColumn; }
 8             set { listColumn = value; }
 9         }
10     }

如果是这样 那么当我执行这个方法的时候 如果给T确定类型: InsertData<string>

那么我接下来的 ImportOracleParameter 参数T就被固定死了  如何解决呢?

我想要的结果就是:我可以传多个 ImportOracleParameter  参数 且每个参数的具体类型T不同

c#
果果天涯的主页 果果天涯 | 初学一级 | 园豆:24
提问于:2013-03-27 15:37
< >
分享
最佳答案
0

用 动态类型试试

        public static void InsertData(params ImportOracleParameter<dynamic>[] parameter)
        {
        }
 var p1 = new ImportOracleParameter<dynamic> { ListColumn = new Dictionary<string, List<dynamic>> { { "1", new List<dynamic> { "1" } } } };
            var p2 = .........
            InsertData(p1, p2);
收获园豆:5
Qlin | 老鸟四级 |园豆:2403 | 2013-03-27 15:56

我已经找到解决方案了 我定义泛型 但又想在一次调用中传不同的类型参数 这样本身是无法完成的 因为泛型在调用时定义了具体类型参数后 就已经确定了类型参数 无法再拆分为多个  不过还是谢谢各位的解答

果果天涯 | 园豆:24 (初学一级) | 2013-03-28 10:27
其他回答(2)
0

貌似可以用逆变或者协变啊,楼主可以参考这个: http://www.cnblogs.com/lemontea/archive/2013/02/17/2915065.html,希望对你有帮助。

beyondchina | 园豆:680 (小虾三级) | 2013-03-27 17:11

同时也谢谢你!

支持(0) 反对(0) 果果天涯 | 园豆:24 (初学一级) | 2013-03-28 10:27
0

173844862 .Net 高级交流部落

辛巴 | 园豆:622 (小虾三级) | 2013-03-28 09:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册