Curious about how this self-referential code can be valid or is able to compile?
public class TestClass
{
public string TestProperty = nameof(TestProperty);
}
>Solution :
The nameof expression is resolved during the compilation of your program. The compiler knows the name of the property TestProperty and will substitute nameof(TestProperty) with "TestProperty".
nameof(TestProperty) has a dependency on TestProperty, but TestProperty does not have a dependency on nameof(TestProperty). Because of this, there is no circular dependency and the compiler can determine the value with no issues