当前位置: 代码迷 >> C# >> 相干泛型Dictionray作为参数传递
  详细解决方案

相干泛型Dictionray作为参数传递

热度:451   发布时间:2016-05-05 05:17:52.0
有关泛型Dictionray作为参数传递
我现在有个这样的数据结构 
public abstract class AttributeBinary<T> 
protected Dictionary<int, T> _data = new Dictionary<int, T>();
public class AttributeUINT : AttributeBinary<uint>

其中,我有个函数需要这样设计
        public override bool Function(WriteStream builder)
        {
            builder.Process(_data);
            return true;
        } 

        因为这个_data是个泛型参数,我有没有什么办法把这玩意作为参数
        传递给
        public override bool Process(Dictionary<int,T> _data)
        {
            for (Int32 i = 0; i < iLength; i++)
            {
                Byte[] bytes = BitConverter.GetBytes(_data[i]);
                WriteBytesValue(bytes);
            }
            return true;
        }

        T的类型会有很多,uint,float 等等,重载的话也太傻了,
参数类型改成System.Collections.IDictionary的话
BitConverter.GetBytes(_data[i]); 就玩不转了
蛋疼
------解决思路----------------------
引用:
上面的错了,泛型不适用
用DLR

public void Set(int t)
       {
           dynamic tt = t;
           BitConverter.GetBytes(tt);
       }



引用:
楼上,这样传参确实可以了,但是后面的
BitConverter.GetBytes 这个函数不吃泛型的 _data,我应该怎么处理呢


我已经补充答复了GetBytes不吃泛型的问题
  相关解决方案