我只是想知道如何從C#6來nameof,可以訪問非靜態屬性,就像它是靜態的。下面是一個例子工作名稱如何?
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,
}
}
沒有什麼特別的。這發生在編譯時,而不是在運行時。編譯器沒有任何問題將名爲Name的成員轉換爲字符串文字「Name」。唯一奇怪的是它爲什麼需要將6個版本添加到該語言:) –
你是什麼意思「nameof'工作如何?」爲什麼_不會工作?你是否有同樣的問題,例如'for','switch','return'等等?這些工作如何?編譯器是爲了理解它們,並在它看到它們時生成正確的編譯代碼。你在尋找編譯器如何工作的解釋嗎?然後,「太寬泛」。如果不是,那麼我不太瞭解你在問什麼。請解釋一下真正令你困惑的事情。 –
你可能在這裏找到你的答案:http://stackoverflow.com/questions/31695900/what-is-the-purpose-of-nameof –