c# - 许多 IF 语句与委托(delegate)?

标签 c# performance if-statement delegates xna

反复使用 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/

相关文章:

java - 如何创建一个 while 循环,只要用户在每个循环结束时输入正确的标签/代码,它就会继续运行?

php - 这个 SQL IF 语句有什么问题?

c# - 从另一个 IList 的一部分快速创建列表

spring - 如何提高 Spring MVC 的性能?

java - 如何对齐文件系统 I/O?

c# - C++/CLI或C#用于在Windows上创建快速,现代和响应迅速的GUI

java - 为什么 Booleanexecute(String SQL) 总是 true,即使我的输入不在我的数据库中

c# - Bouncy CaSTLe 使用 C# 签署和验证 SHA256 证书

c# - DefaultAzureCredetials 无法通过 Visual Studio 进行身份验证 - 找不到 AzureServiceAuth\tokenProvider.json

c# - 如何进行嵌套列表操作?