public static bool ConvertDataToExcel<T>(T[][] data, string xlsSaveFileName)请大家帮忙解释一下这个语句的具体含义。<T> 是啥意义?
T[][] data  本意是要传递进来一个二维数组,为什么不写成 string[,] data 的形式呢?急求解!
谢谢大家了!

解决方案 »

  1.   

    T代表的是泛型,就是说可以是任何类型的数据第二个如果向你那么写的话就固定了是string的二维数组了
    人家那样写说明它的数据类型可以更改
      

  2.   


    请问如果要调用这个方法,应该用什么语句?
    我写的是 if (z >= z_caster ) ConvertDataToExcel<T>;  结果报错
     if (ConvertDataToExcel<T>()) ; 也报错。其实我写这个方法的本意是判断if (z >= z_caster ) ,如果条件满足,就把调用这个方法把数组T[][]写入到excel里。请指教
      

  3.   

    各位大虾请指教,这样一个bool方法我该怎么调用啊?我写这个方法的本意是判断if (z >= z_caster ) ,如果条件满足,就把调用这个方法把数组T[][]写入到excel里。请指教
    。谢谢大家了
      

  4.   

    //
    //public static声明一个公开的,静态方法
    //bool这个方法返回值为true或者false
    //ConvertDataToExcel<T>将数据转换到excel并且用泛型控制了数据的基本类型
    //(T[][] data, string xlsSaveFileName)
    //两个参数,第一个,要转换的数据,第二个excel文件名称
    public static bool ConvertDataToExcel<T>(T[][] data, string xlsSaveFileName)
    {}
      

  5.   

    static 方法用类名直接调用,泛型在使用之前要给实例化一下,就是把那个T给一个具体的类型,比如说你要用string,就把T实例化成string
      

  6.   


      public  void ConvertDataToExcel<T>(T[][] data, string xlsSaveFileName)
            {
                //在做这些前,将Excel添加到引用中来!!!
                Excel.Application excel = new Excel.Application();
              if (excel == null)
                {
                    MessageBox.Show("没有数据可供保存 ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    Excel.Workbook xlBook = excel.Workbooks.Add(true);
                    Excel.Worksheet xlSheet = (Excel.Worksheet)xlBook.Worksheets[1];
                    int rows = data.GetLength(0);//行
                    //int cols = data.GetLength(1);//列                //导入数据
                    for (int i = 0; i < rows; i++)
                    {
                        for (int j = 0; j < data[i].Length; j++)
                        {
                            if (data[i][j] != null)
                            {
                                excel.Cells[i + 1, j + 1] = data[i][j].ToString().Trim();
                            }
                        }
                    }
                    try
                    {
                        xlBook.Saved = true;
                        xlBook.SaveCopyAs(xlsSaveFileName);
                      
                    }
                    catch(Exception error)
                    {
                        MessageBox.Show(error.Message, "警告 ", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    finally
                    {
                        excel.Quit();
                        excel = null;
                        GC.Collect();
                    }
                }
            }代码是这样的,这个方法被调用时是这么写的 
    if (z >= z_caster) ConvertDataToExcel(T[i,j] , whole); 
    但是报错,请大家指教一下我这是哪里写错了