可以使用关键字ref
将对变量(而不只是变量的值)的引用传递到另一个函数中。也可以使用nameof(variableName)
获取变量名。但是,我不确定如何解决当前的问题。
在保存/加载Unity的情况下,出现这样的行并不少见:
level = PlayerPrefs.GetInt("level", level);
我觉得我不应该连续写三遍level
,而是应该有一个简短的小功能,如:
LoadPref(ref level);
void LoadPref(ref int pref)
{
pref = PlayerPrefs.GetInt(nameof(pref), pref);
}
然后可以通过另一个简单的pref
调用来添加每个新的LoadPref
,将其写入一次并消除魔术字符串的任何潜在问题。但是,问题是nameof(pref)
返回pref
,即使我真的希望它返回所引用变量的名称。
有没有办法将引用变量的名称作为字符串获取?
这不是Finding the variable name passed to a function的副本,因为nameof(pref)
是解决方案-尽管我可以理解为什么它们的标题会引起混乱。这里的问题是,是否有办法从ref
获取原始引用的名称。