我一直在做很多研究,但似乎找不到适合我的答案。我有一个字典,其中包含我所有的全局游戏变量/状态的值(例如拾取的库存物品等),它的设置就像Dictionary<string, object>因为某些变量是布尔值,而其他变量是字符串、整数等。
我的问题是:在遍历字典时,如何区分它们以确定哪个是布尔值、字符串等?我试过类似的东西:
foreach (string key in GlobalGameVars.globals.Keys.ToList())
{
if (GlobalGameVars.globals[key].GetType() == typeof(bool))
// Do something
}
不幸的是,它告诉我对象类型和布尔类型不匹配。这是有道理的,但是有没有办法使用一个对象然后测试它的底层类型?
或者有没有更好的方法可以让我放弃使用通用对象类型?
任何帮助将非常感激。谢谢!