public class ExamDALQueryWare<R> : QueryWare<R> where R : global::GlobalLib.IData, new()
    {
        public ExamDALQueryWare();        public int QueryCount();
        public R[] QueryData();
        public DataTable QueryDataTable();
        public string QueryXML();
    }
这是别人写的个类,能告诉我这是什么东西

解决方案 »

  1.   

    疑惑的应该是这吧:
    public class ExamDALQueryWare<R> : QueryWare<R> where R : global::GlobalLib.IData, new()
    ExamDALQueryWare<R>:表示泛型类
    : QueryWare<R>:表示继承自泛型类QueryWare<R>
    where R:表示对对象R的约束
    global::GlobalLib.IData:表示R必须为实现GlobalLib.IData接口的类型
    new():表示该R必须有public构造函数
      

  2.   

    当我调用到这个方法的时候他居然出现了xml格式的字符串呢?
    <?xml version='1.0' encoding='utf-8' ?><root><row exam_uid=\"33\" exam_name=\"成语、歇后语、熟语知识测试\" exam_descp=\"成语、歇后语、熟语知识测试\" customerid=\"22342\" all_level=\"5\" status=\"10\" tag1=\"chinese\" subject_name=\"语文\" subject_lev=\"2\" subject_idx=\"2\" number=\"29\" subject_no=\"00010001\" all_q=\"29\" fullname=\"在线客服九\" RowNumber=\"1\"/><row exam_uid=\"68\" exam_name=\"初中语文竞赛题\" exam_descp=\"初中语文竞赛题\" customerid=\"22342\" all_level=\"5\" status=\"10\" tag1=\"chinese\" subject_name=\"语文\" subject_lev=\"2\" subject_idx=\"2\" number=\"30\" subject_no=\"00010001\" all_q=\"30\" fullname=\"在线客服九\" RowNumber=\"2\"/><row exam_uid=\"174\" exam_name=\"高中语文竞赛题\" exam_descp=\"高中语文竞赛题\" customerid=\"22342\" all_level=\"5\" status=\"10\" tag1=\"chinese\" subject_name=\"语文\" subject_lev=\"2\" subject_idx=\"2\" number=\"30\" subject_no=\"00010001\" all_q=\"30\" fullname=\"在线客服九\" RowNumber=\"3\"/><row exam_uid=\"21\" exam_name=\"古代文学文化常识\" exam_descp=\"古代文学文化常识\" customerid=\"22342\" all_level=\"5\" status=\"10\" tag1=\"chinese\" subject_name=\"语文\" subject_lev=\"2\" subject_idx=\"2\" number=\"41\" subject_no=\"00010001\" all_q=\"41\" fullname=\"在线客服九\" RowNumber=\"4\"/><row exam_uid=\"17\" exam_name=\"汉语言文字测试题\" exam_descp=\"汉语言文字测试题\" customerid=\"22342\" all_level=\"5\" status=\"10\" tag1=\"chinese\" subject_name=\"语文\" subject_lev=\"2\" subject_idx=\"2\" number=\"30\" subject_no=\"00010001\" all_q=\"30\" fullname=\"在线客服九\" RowNumber=\"5\"/><row exam_uid=\"220\" exam_name=\"趣味智力题\" exam_descp=\"语文趣味智力题\" customerid=\"22342\" all_level=\"50\" status=\"10\" tag1=\"chinese\" subject_name=\"语文\" subject_lev=\"2\" subject_idx=\"2\" number=\"201\" subject_no=\"00010001\" all_q=\"201\" fullname=\"在线客服九\" RowNumber=\"6\"/><row exam_uid=\"149\" exam_name=\"诗词知识测试题\" exam_descp=\"诗词知识测试题\" customerid=\"22342\" all_level=\"5\" status=\"10\" tag1=\"chinese\" subject_name=\"语文\" subject_lev=\"2\" subject_idx=\"2\" number=\"30\" subject_no=\"00010001\" all_q=\"30\" fullname=\"在线客服九\" RowNumber=\"7\"/><row exam_uid=\"145\" exam_name=\"外国文学测试题\" exam_descp=\"外国文学测试题\" customerid=\"22342\" all_level=\"5\" status=\"10\" tag1=\"chinese\" subject_name=\"语文\" subject_lev=\"2\" subject_idx=\"2\" number=\"30\" subject_no=\"00010001\" all_q=\"30\" fullname=\"在线客服九\" RowNumber=\"8\"/><row exam_uid=\"180\" exam_name=\"现当代文学文化常识\" exam_descp=\"现当代文学文化常识\" customerid=\"22342\" all_level=\"5\" status=\"10\" tag1=\"chinese\" subject_name=\"语文\" subject_lev=\"2\" subject_idx=\"2\" number=\"30\" subject_no=\"00010001\" all_q=\"30\" fullname=\"在线客服九\" RowNumber=\"9\"/></root>"
      

  3.   

    楼主你只看到了方法签名,并没有见实现啊。用Reflect反编译看吧。
      

  4.   

    具体方法 哪知道喔 只能看到方法名 最后一个是不是返回string格式的XML字符串?
      

  5.   

    对。是返回的是一个XML的字符串。今天一下午都没有找到List<T>转换成XML的格式。这个是以前前辈留下来的老古董了
      

  6.   


    那时候第一次接触泛型类的时候也这样纠结过,,那时候看到一个方法后面跟个 where 不淡定半天。
      

  7.   


    new() 是必须有public 无参的构造函数,也就是说R类型必须要能使用 new R()来构造对象。这是msdn给的说明:
    new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。 如果要使用 new 约束,则该类型不能为抽象类型。