如何获得通过引用传递的变量名的字符串?

时间:2019-05-21 14:04:09

标签: c# unity3d

可以使用关键字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获取原始引用的名称。

0 个答案:

没有答案