C# 泛型问题

hot666aaam 2012-03-20 06:48:18
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是个类
谢谢大大们 请赐教
...全文
96 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xboxeer 2012-03-20
  • 打赏
  • 举报
回复
IClassHaveName里面少了个GetEnabledSubDepartment方法
[Quote=引用 2 楼 caozhy 的回复:]

C# code
interface IClassHaveName
{
string Name { get; set; }
}

protected void InitDepartment<T>(T dept, TreeNode root) where T : IClassHaveName
{
T[] subDepartments = dept.GetEnabledSubDepa……
[/Quote]
色拉油 2012-03-20
  • 打赏
  • 举报
回复
这种时候感觉不太适合用泛型,因为你用到了类里的方法,并不是所有类里都有GetEnabledSubDepartments这种方法
这种时候用接口还好些
[Quote=引用 2 楼 caozhy 的回复:]

C# code
interface IClassHaveName
{
string Name { get; set; }
}

protected void InitDepartment<T>(T dept, TreeNode root) where T : IClassHaveName
{
T[] subDepartments = dept.GetEnabledSubDepa……
[/Quote]
threenewbee 2012-03-20
  • 打赏
  • 举报
回复
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
{
...
}
EnForGrass 2012-03-20
  • 打赏
  • 举报
回复
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);
}

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧