How does nameof work?
问题 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 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, } } 回答1: It's not "accessing" the property - that operator is purely a compiler mechanism to inject the "name" of the argument into the code