【发布时间】:2011-07-08 00:49:16
【问题描述】:
我有一个用户定义的类,我想创建一个公共列表作为其中的一部分。我希望 List 是一个委托函数列表,我可以添加这些委托函数并将每个列表成员设置为一个委托函数。我希望这个函数列表成为我实例化的类的一部分,所以当我将它传递给其他函数时,它会跟随类的实例。我需要能够通过 foreach 循环调用委托函数,因此它也必须是 IEnumberable。
我已经尝试了几个小时,我所拥有的可能会或可能不会做部分工作。当它开始看起来我需要为自定义列表编写我自己的 IEnumberation 例程时,我意识到我有点不知所措并来到了这里。
这是我的代码:
public delegate List<ChartTestModel> MyDelegate<T>(T i);
public class DelegateList<T>
{
public void Add(MyDelegate<T> del)
{
imp.Add(del);
}
public void CallDelegates(T k)
{
foreach (MyDelegate<T> del in imp)
{
del(k);
}
}
private List<MyDelegate<T>> imp = new List<MyDelegate<T>>();
}
我什至不知道这是否符合我的要求。不过,我知道我无法通过 ForEach。它完全是由在 Google 上查找的拼凑代码编写的。我几乎不明白它应该做什么。
【问题讨论】:
-
请添加您拥有的代码,因为我不清楚这是什么问题。
-
为什么不使用事件模式? codeproject.com/KB/cs/event_fundamentals.aspx
标签: c# class list delegates ienumerable