<p>Let me use the following example to explain my question:</p>
<pre class="lang-csharp prettyprint-override"><code>public string ExampleFunction(string Variable) {
    return something;
}

string WhatIsMyName = &quot;Hello World&quot;;
string Hello = ExampleFunction(WhatIsMyName);
</code></pre>
<p>When I pass the variable <code>WhatIsMyName</code> to the <code>ExampleFunction</code>, I want to be able to get a string of the <em>original</em> variable's name. Perhaps something like:</p>
<pre class="lang-csharp prettyprint-override"><code>Variable.OriginalName.ToString() // == &quot;WhatIsMyName&quot;
</code></pre>
<p>Is there any way to do this?</p>

No.
I don't think so.
The variable name that you use is for your convenience and readability. The compiler doesn't need it & just chucks it out if I'm not mistaken.
If it helps, you could define a new class called
```
NamedParameter
```
with attributes
```
Name
```
and
```
Param
```
. You then pass this object around as parameters.