int xx<T>(T a)
        {
            int y;
    y=a.Length;
            return y;
        }

解决方案 »

  1.   

    使用泛型约束        int xx <T>(T a)
            where T: A
            {
                int y;
        y=a.GetLength();
                return y;
            }定义一个所有T可能类型的共同基类A:public class A
    {
        public virtual int GetLength();
    }
      

  2.   

    不加约束就是object,你说object有Length这个属性吗?
    如果你知道T是string,为什么还用泛型?
    泛型有5大约束:
    值类型约束
    引用类型约束
    基类约束
    接口约束
    构造函数约束你这个的问题是无法解决的,因为没有一个类或接口专门提供Length这个属性,而string是个封闭类,你无法继承它
      

  3.   

    lz可以直接用vb.net,option strict = off 的情况下编译
    Function xx(ByVal a) As Integer
       Dim i As Integer
       i = a.Length
       Return i
    End Function
    或者lz熟悉反射的话,在c#里面直接用反射