有类定义如下:
    class SaveMap<T>
    {
        private T t;
        public SaveMap(T t)
        {
            this.t = t;
        }        public string Save()
        {
          //返回t的类型,这儿已经明白
             //但是我想调用t的一个write方法,而现在这儿的T是未知的如何搞定 !
          //  通常这个T可能是我自定义的类,但是现在这儿T是未知的,为之奈何?
        }
    }
测试:            SaveMap<StreamWriter> s = new SaveMap<StreamWriter>(new StreamWriter(fs));
            MessageBox.Show(s.Save());            SaveMap<BinaryWriter> ss = new SaveMap<BinaryWriter>(new BinaryWriter(fs));
            MessageBox.Show(ss.Save());

解决方案 »

  1.   

    我使用了约束: class SaveMap<T> where T:StreamWriter,BinaryWriter可是这样不允许,语法错误
    只能是class SaveMap<T> where T:StreamWriter晕啊.~~~两个不支持吗?
      

  2.   

    class SaveMap <T> where T:接口1
        { 
            private T t; 
            public SaveMap(T t) 
            { 
                this.t = t; 
            }         public string Save() 
            { 
               T.接口1的某方法();
            } 
        } 
      

  3.   

       public interface ISaveMap
        {
            
        }我要是SaveMap<T> where T:ISaveMap这样做的话
    这个接口里不都要实现它所有的方法吗,而且那些是.net下面的类不会从我这个接口中继承过去的呀
      

  4.   

    StreamWriter与BinaryWriter的write方法是不一样的,看来是实现不了了
    用反射吧