How does nameof work?
<p>I was just wondering how come nameof from C# 6,  can access non static property just like if it was static. Here is an example </p>

<pre><code>public class TestClass
{
    public string Name { get; set; }
}

public class Test
{
    public Test()
    {
        string name = nameof(TestClass.Name); // whats so speciall about nameof
        //string name2 = TestClass.Name; this won't compile obviously, 
    }
}
</code></pre>