反复使用 if 语句,或者使用一次并使用委托(delegate)根据 IF 语句的输出调用函数,性能会更好吗?我想说,答案显然是委托(delegate),但我不确定一遍又一遍地使用不同的方法是否比许多执行相同操作的 IF 语句更快或更慢。我希望我解释得对。
PS 如果重要的话,我需要知道这一点的框架是 XNA。
最佳答案
你有你的权衡。最好的答案已经评论过,那就是对两者进行分析,然后找出答案。 IF 语句可能会占用更多 CPU,因为它必须一次又一次地进行比较。另一方面,使用委托(delegate)会占用更多内存,并且它是您需要保留的另一个对象。
就我个人而言,我喜欢做的最好的事情(如果适用,不知道问题的完整上下文)是将 IF ELSE 语句变成 switch-case。这对于状态机和其他重复过程非常有效,而且您还可以消除 IF 附带的所有分支。然而,这是假设您正在检查的值在范围内都相对接近,否则您会给编译器带来很多麻烦。
关于c# - 许多 IF 语句与委托(delegate)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11820169/