gpt4 book ai didi

.NET 2.0 中的 C# 扩展方法

转载 作者:太空狗 更新时间:2023-10-30 00:36:19 26 4
gpt4 key购买 nike

我发现了几个使扩展方法在 .NET2.0 中工作的方法的链接(The mothDiscord & RhymeStack Overflow)。我也从一位同事那里隐约听到这会导致库或其他问题出现问题?是这样吗?此外,所有 3 种方法都使用不同的方法:

The moth :

namespace System.Runtime.CompilerServices
{
public class ExtensionAttribute : Attribute { }
}

Discord and Rhyme

namespace System.Runtime.CompilerServices
{
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
public class ExtensionAttribute : Attribute {}
}

Stack Overflow

namespace System.Runtime.CompilerServices
{
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class
| AttributeTargets.Method)]
public sealed class ExtensionAttribute : Attribute {}
}

这些方法有什么区别,您会推荐哪一种?

最佳答案

最终不会有太大的不同;您可能会争辩说,与运行时相匹配的那个是首选,但理想的答案是切换到 .NET 3.5(否则在以后它可能会混淆范围内同一属性的不同版本等)。

[AttributeUsage] 将防止它附加到它不会做任何事情的事情上 - 但它不会自己做任何事情...

根据类型查看元数据,确切的属性用法似乎最像 stackoverflow 变体 - 但最终这并不是非常重要 - namenamespace 就是全部这很重要(并且它继承自 Attribute)。

关于.NET 2.0 中的 C# 扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2277365/

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