因此 .NET 4.5 引入了CallerMemberNameAttribute
,这对于任何使用 WPF 并实施 WPF 的人来说似乎都是天赐之物INotifyPropertyChanged
- 我的问题是这样的:该属性本质上是由 4.5 5.0 编译器绑定/支持的,还是它更像是环境的语法糖助手,就像人们可以通过声明一个来伪造 Visual Studio 一样ExtensionAttribute
你自己的,神奇地开启 LINQ 语法?
编辑:(对不起乔恩!)
我想我是在问是否可以“启用”CallerMemberNameAttribute
在 .NET 4.0 中,通过在正确的命名空间中重新声明属性,就像可以通过正确声明 .NET 2.0 中的属性来“启用”LINQ 查询语法一样。ExtensionAttribute
班级。我强烈怀疑,当然不是……
换句话说:我想知道我是否可以从以下功能中受益CallerMemberName
无需升级到 .NET 4.5/5
希望这更清楚......
NinjaEdit #2:叹息...版本编号约定令人困惑!
是的,您可以,正如您所说,就像您可以使用 LINQ 和 .NET 2 一样。我在 .NET 4.0 项目中使用 VS2012 编译器成功使用以下内容:
namespace System.Runtime.CompilerServices {
[AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
public sealed class CallerMemberNameAttribute : Attribute {
}
}
Be very小心项目中的每个人都使用 VS2012,否则他们会得到无声的错误,因为CallerMemberNameAttribute
没有做任何事情并且null
作为参数默认值传递。
2013年6月28日编辑:考虑安装微软Bcl http://nuget.org/packages/Microsoft.Bcl/NuGet 包提供CallerMemberNameAttribute
(以及 .NET 4.5 中的一些其他类)用于 .NET 4 和 Silverlight,而不是手动执行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)