gpt4 book ai didi

.net - 4.5 中的 CallerMemberName 属性是 "able to be faked"吗?

转载 作者:行者123 更新时间:2023-12-02 06:18:08 25 4
gpt4 key购买 nike

因此,.NET 4.5 引入了 CallerMemberNameAttribute,对于任何使用 WPF 并实现 INotifyPropertyChanged 的人来说,这似乎是天赐之物 - 我的问题是:属性是否本质上相关/由 4.5 5.0 编译器支持,或者它更像是环境的语法糖助手,就像人们可以通过声明自己的 ExtensionAttribute 来伪造 Visual Studio 一样,神奇地开启 LINQ 语法?

编辑:(对不起乔恩!)我想我是在问是否可以通过在正确的命名空间中重新声明属性来“启用”.NET 4.0 中的 CallerMemberNameAttribute 功能,就像可以在 .NET 4.0 中“启用”LINQ 查询语法一样。 NET 2.0 通过正确声明 ExtensionAttribute 类来实现。我强烈怀疑,当然不是……

换句话说:我想知道我是否可以在不升级到 .NET 4.5/5 的情况下从 CallerMemberName 的功能中受益

希望这更清楚......

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 {
}

}

非常小心项目中的每个人都使用 VS2012,否则他们会遇到无声错误,因为 CallerMemberNameAttribute 没有执行任何操作并且 null 作为参数默认值传递。

编辑 2013-06-28: 考虑安装 Microsoft.Bcl NuGet 包,为 .NET 4 和 Silverlight 提供 CallerMemberNameAttribute(以及 .NET 4.5 中的其他一些类),而不是手动执行。

关于.net - 4.5 中的 CallerMemberName 属性是 "able to be faked"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13381917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com