孔加入nameof到C#,我並不孤單誰是生病被不斷地只是用來做數據綁定神奇的字符串 - 參見:通過後門
How to make Databinding type safe and support refactoring
但是我關心的性能這個解決方案和更多的輸入 - 每次你想使用nameof你必須輸入一個lambda。所以我想到了更強大的方法 - 編寫一個函數nameof和外部程序,它會在編譯之前更改每個.cs文件。
public string nameof<T>(T obj,string name = null)
{
return name;
}
你會使用這種方式
nameof(the_object.MyProperty);
關鍵在於外部程序幫助nameof - 它會搜索nameof的任何號召,只需更換
nameof(X.Y.Z)
或
nameof(X.Y.Z,"s")
in到
nameof(X.Y.Z,"Z")
我的問題是 - 什麼限制,這種方法的缺陷你看?或者,也許.Net 5.0內置nameof將在下週發佈,所以開始爲它編寫程序是沒有意義的? ;-)
預先感謝您的想法,建議等。
如果你想在5.0這個功能,不要屏住呼吸,它可能不會發生...看到[這篇文章](http://blogs.msdn.com/b/ericlippert/archive/2009/05/21/in-foof-we-trust-a-dialogue.aspx)的原因。 (但我同意它會非常方便,至少對於屬性,如果不是方法) – 2010-10-13 08:10:12