c# - Unity/C#一个函数来设置任何int?
问题描述
我有一个小项目,我想避免为每个整数创建一个设置器。所以我在想这是否可能。
所以我想设置
player.setResource(player.money, 100);
,
player.setResource(player.coal, 20);
等的数量
。
首先我不确定是否可能,其次如何编写函数本身。
public void setResource(int resource, int amount)
{
???
}
解决方案
您可以使用 Enum 来定义资源类型,并使用 Dictionary 来存储每个资源的值。这是一个例子:
public enum ResourceType
{
Coal,
Money
}
private Dictionary<ResourceType, int> _resources = new Dictionary<ResourceType, int>();
public void SetResource(ResourceType resourceType, int value)
{
_resources[resourceType] = value;
}
public int GetResource(ResourceType resourceType, int defaultValue = 0)
{
if (_resources.TryGetValue(resourceType, out var value))
return value;
else
return defaultValue;
}
推荐阅读
- python - 如何更改 Tkinter 动画人物间隔
- java - 为 thymeleaf 中的选择多个元素创建一个片段
- javascript - 高图错误:
属性 x:预期长度,“NaN” - mongodb - 根据子文档中的值对 mongo db 文档进行排序
- python - 为什么这个 asyncio 调用暂停执行?
- shell - 带有 Shell 脚本的 IF 上的多个条件
- javascript - 如何仅在 React 中完成渲染时才显示渲染?
- ios - 检测 GeometryReader SwiftUI 背景上的点击手势
- visual-studio - Visual Studio:无法部署到 HoloLens 1 (DEP6957)
- android - 如何在不使用 FileOutputStream 的情况下使用 SAF 附加文件内容