如何随机调用方法列表

San*_*dip 0 .net c#

我说的方法很少

  • 方法1()
  • 方法2()

    ...

  • Method5()

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

我怎样才能做到这一点?

Pat*_*man 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]();
Run Code Online (Sandbox Code Playgroud)

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

list.Add(() => this.Method1(1));
list.Add(() => this.Method2(1, 2));
Run Code Online (Sandbox Code Playgroud)

如果该方法返回一个值,你应该使用Func<T>,而不是Action,这里T是输出型.