protected void InitDepartment(DAL.Department dept, TreeNode root)
        {
            DAL.Department[] subDepartments = dept.GetEnabledSubDepartments();            foreach (DAL.Department var in subDepartments)
            {
                TreeNode node = new TreeNode(var.Name, 1, 2);
                node.Tag = var;                this.InitDepartment(var, node);                root.Nodes.Add(node);
            }
        }请问这个用泛型怎么写啊 dept是个类
谢谢大大们 请赐教

解决方案 »

  1.   

      List<subDepartments> list= dept.GetEnabledSubDepartments().ToList();  foreach (DAL.Department var in list)
      {
      TreeNode node = new TreeNode(var.Name, 1, 2);
      node.Tag = var;
      this.InitDepartment(var, node);
      root.Nodes.Add(node);
      }
      

  2.   

    interface IClassHaveName
    {
        string Name { get; set; }
    }protected void InitDepartment<T>(T dept, TreeNode root) where T : IClassHaveName
      {
      T[] subDepartments = dept.GetEnabledSubDepartments();  foreach (T item in subDepartments)
      {
      TreeNode node = new TreeNode(item.Name, 1, 2);
      node.Tag = item;  this.InitDepartment(item, node);  root.Nodes.Add(node);
      }
      }
     
    class DAL.Department : IClassHaveName
    {
        ...
    }
      

  3.   

    这种时候感觉不太适合用泛型,因为你用到了类里的方法,并不是所有类里都有GetEnabledSubDepartments这种方法
    这种时候用接口还好些
      

  4.   

    IClassHaveName里面少了个GetEnabledSubDepartment方法