【发布时间】:2018-02-13 01:55:31
【问题描述】:
我对 C# 还很陌生,并试图弄清楚如何从列表中调用函数。我认为 List 会完成我需要的工作。我可以将我的函数放入列表中,但我似乎无法实际调用它们。
首先我尝试了这个:
List<Action> randEvent = new List<Action>();
void Test()
{
randEvent.Add(Test2);
Invoke(randEvent(0), 0f);
}
void Test2()
{
print("This is a test of the random event system");
}
那么这个
List<Action> randEvent = new List<Action>();
void Test()
{
randEvent.Add(Test2);
randEvent(0);
}
void Test2()
{
print("This is a test of the random event system");
}
但两者都不起作用。我究竟做错了什么?这甚至可能吗?我想这样做的原因基本上是我有 100 个函数,我希望我的程序在调用另一个函数时随机选择它们。
感谢任何解决方案,但请记住,我对 C# 和代码还是很陌生。提前致谢。
【问题讨论】:
-
randEvent是如何定义的?请阅读How to Ask 并采取tour -
抱歉,在我的副本 Plutonix 中遗漏了那一行,感谢您指出。
-
就问题描述而言,“但两者都不起作用”真的很差。编译器/运行时/调试器都提供了非常有用的信息(错误消息、堆栈跟踪等),关于您应该在问题中提出的“不工作”的性质。不这样做可能会被视为懒惰。
-
我认为这没有必要甚至没有帮助,因为“不工作”纯粹是对语法的滥用。这些错误对阅读此问题的任何人都没有用。
-
@Rathlord 当然会。例如,在您提供的几百个字符的代码中,您将被告知错误在哪里。这对试图帮助你的人来说是有用的信息。更重要的是,通过花时间陈述所有事实,您可能会深入了解自己的问题。写一个 SO 问题是“talking to the duck”的一种形式。