在c#中通过对象列表修改变量的最佳方法
本文关键字:变量 修改 最佳 方法 列表 对象 | 更新日期: 2023-09-27 18:08:45
我正试图用c#为一个项目构建一个升级系统,并且想知道什么可能是修改变量的最佳方法,通过一组自定义对象(大小可能不同),这些对象具有变量应该改变多少的信息。
一些想法突然出现在脑海中,但这是我的关注点:
-
第一个是通过使用属性:
public float SomeStat{ get{ float modStat = 0; foreach(StatChanger Stat in StatChangers){ modStat += Stat.valueChange; } return modStat; } }
这将非常干净地解决我的问题,但我担心的是,当属性被访问时,例如每一帧,将有一个性能下降的项目在列表
-
第二个是调用一个函数来更新变量并将其存储在另一个变量中,以便每帧使用而不会导致性能下降:
public float someStat = 10; public float someStatModifed; void UpdateStat(){ someStatModifed = someStat; foreach(StatChanger Stat in StatChangers){ someStatModifed += Stat.valueChange; } }
这个可以工作,但是我可能会忘记调用它,当有多个变量需要更改时,它会变得更加混乱。
我应该使用这两者的组合还是有更好的方法?
我不能说性能将是什么,相对于其他任何东西,但你可以使用LINQ:
someStatModifed += StatChangers.Sum(stat => stat.valueChange);
另外,在出现问题之前,不要过于担心优化它。尝试打破它,但不要修复它,除非它是明显的,即使是大数据集。