孔加入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