从C++转过来的,在C#也想实现一些实用功能    public   class MyClass<T>
    {
        public T m_data = new T();           能否在这里new T()?
        public void foo(){m_data.foo();}     能否调用T类型的foo成员函数?
    }

解决方案 »

  1.   

    public T m_data = new T(); 能否在这里new T()?可以public void foo(){m_data.foo();} 能否调用T类型的foo成员函数?不可以
      

  2.   

        public   class MyNode<T>
        {
            public T m_data = new T();
            public String MyToString(){return m_data.ToString();}
        }new T()也不行,通不过:
    错误 2 变量类型“T”没有 new() 约束,因此无法创建该类型的实例 E:\lib\wince\protocolLib\PktParser.cs 27 27 protocolLib
      

  3.   

    public class MyNode<T>
    =>
    public class MyNode<T> where T: new ()
      

  4.   

    T.ToString()可以,但自定义的不行
      

  5.   

    加where T: new ()后,可以new了
      

  6.   

    dynamic 这么用吗?
    public   class MyNode<T>where T:new()
        {
            public T m_data = new T();
            public String MyToString(){return m_data.ToString();}
            public void foo() {
                dynamic data = m_data;
                data.foo();
            }
        }
    但还报错:
    错误 2 找不到类型或命名空间名称“dynamic”(是否缺少 using 指令或程序集引用?) E:\lib\wince\protocolLib\PktParser.cs 30 13 protocolLib查到C#4.0中引入了动态类型机制,我是vs2005,不知支不支持C#2.0?
      

  7.   

    http://www.cnblogs.com/pponline/archive/2009/12/10/1621270.html