gpt4 book ai didi

c# - Buddy 类到底是什么?如何使用它向现有类添加注释?

转载 作者:太空宇宙 更新时间:2023-11-03 19:51:43 25 4
gpt4 key购买 nike

我看到术语“Buddy 类”被用作“如何向另一个文件中的部分类添加注释”等问题的“答案”,但这些答案假设我知道 Buddy 类 是什么,并且代码示例假设我理解这是如何工作的/为什么工作。

对于 C# 中的伙伴类是什么,以及它如何/为什么允许我修改现有类(例如向属性添加注释),我看不出简单的解释。

最佳答案

“Buddy 类”不一定是特定于 C# 的,但我相信它在 .Net 中更常见,作为一种模式或技术(hack),用于扩展自动生成的类并向它们添加属性。它们有时也称为关联类或元数据类。命名约定是将 MD(用于元数据)附加到好友类,以便可以将其识别为一个。至于为什么,自动生成的代码会覆盖您所做的任何更改。关联类可能是规避这种情况的一种方法,您可以保留自定义元数据(例如验证属性)。您有一个自动生成的类,可以方便地标记为部分(我相信这实际上是引入部分修饰符的原因 - 以扩展自动生成的类)。您想要应用一个属性,因此您创建了一个包含该属性的单独类,并将它与另一个类结合起来。

如果 VS 为您的实体之一生成此文件:

public partial class AutoGeneratedClass
{
public string SomeData { get; set; }
}

如果您想扩展它并添加您可以创建的自定义元数据:

[MetadataType(typeof(NotAutoGeneratedClassMD))]
public partial class AutoGeneratedClass
{
}

public class NotAutoGeneratedClassMD
{
[DisplayName("This is some data")]
public string SomeData { get; set; }
}

简短版:

内容:关联类以使用自定义元数据扩展自动生成的类的方法

原因:避免在再次生成时覆盖对自动生成类所做的更改。

就我个人而言,我不是粉丝,但那是另一回事:)

关于c# - Buddy 类到底是什么?如何使用它向现有类添加注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38371519/

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