如何随机调用方法列表

时间:2014-09-19 12:47:12

标签: c# .net

我说的方法很少

  • Method1()
  • 方法2()

    ...

  • Method5()

现在,当我执行表单时,我想随机调用这些方法并打印输出。

我该怎么做?

2 个答案:

答案 0 :(得分:6)

创建方法列表,然后选择一个。叫那一个:

List<Action> list = new List<Action>();
list.Add(this.Method1);

// Get random number
Random rnd = new Random();
int i = rnd.Next(0, list.Count);

// Call
list[i]();

请注意,这仅在签名相同时才有效(在这种情况下没有参数)。否则你可以像这样添加:

list.Add(() => this.Method1(1));
list.Add(() => this.Method2(1, 2));

如果方法返回一个值,则应使用Func<T>而不是Action,其中T是输出类型。

答案 1 :(得分:2)

您可以尝试这样的事情:

Random rnd = new Random();
// I suppose that you have 5 methods. If you have a greater number of methods
// just change the 6.
var number = rnd.Next(1,6);
switch(number)
{
    case 1:
       // call Method1
    case 2:
      // call Method2 
}