Is there a way to get the symbolic String name [editing name] of a variable at runtime?

Hi UnityAnswers Community,

I was wondering if there was a way in C# to get the symbolic name of a variable at runtime.

I am saving to disk several properties of a Scene in the form of “STRING=value” lines. STRING is also the internal name of the variable I’m using in MonoDevelop.

Is there an easy way to obtain something like VARIABLE.GetLiteralName() to speed up the saving process, or should I simply manually type the string equivalent of each variable?

I know I could map each string in a hashmap/array, but I’d like to know if what I asked is possible.

For example:

float _a;

string _b = _a.SomeFunctionThatGetsThisVariableSymbolicName();

at the end, _b should contain “_a”;

Thanks for your time :slight_smile:

I looked this up myself a while back, and as far as I was able to tell, there’s no way to go from a variable to its name.

But! you can use reflection to get a list of names which you can then translate into variables. You can probably automate the creation of your hashtable or whatever using some fancy tricks.

using System.Reflection;

...

public void GetEverythang() {
  FieldInfo[] allFields = this.GetType().GetFields();
  // play to your heart's content
}