C# 函数指针

  • Post author:
  • Post category:其他


利用托管来实现

private void button2_Click(object sender, EventArgs e)
{
	n++;
	TTAdd(list, testFunc);
}
private void button3_Click(object sender, EventArgs e)
{
    TTDo(list);
}
public delegate void voidFuncDeleg();
List<voidFuncDeleg> list = new List<voidFuncDeleg>();
int n = 0;
void testFunc()
{
    MessageBox.Show(n.ToString());
}
void TTAdd(List<voidFuncDeleg> list, voidFuncDeleg func)
{
    for (int i = 0; i < list.Count; i++)
    {
		if (list[i] == func)
			return;
    }
    list.Add(func);
}
void TTDo(List<voidFuncDeleg> list)
{
    while (list.Count > 0)
    {
		list[0]();
		list.RemoveAt(0);
    }
}