c# - 在 C# 中的许多类中使用相同的一堆属性

标签 c# attributes

我试图在许多类中使用同一组属性。如何在 C# 中实现此目的?

如果不清楚我要实现的目标,请查看示例:

public class A
{
    public string Property1 { get; set; }
    public string Property2 { get; set; }
    public string Property3 { get; set; }

    [Attribute1]
    [Attribute2]
    [Attribute3]
    public string Foo { get; set; }
}

public class B
{
    public string Property4 { get; set; }
    public string Property5 { get; set; }
    public string Property6 { get; set; }

    [Attribute1]
    [Attribute2]
    [Attribute3]
    public string Foo { get; set; }
}

基本上 Foo 每次都有相同的属性,但是 copy-paste 不是一个选项,因为它太容易出错。

在这个特定的示例中,它可以从此类继承 AB:

public class C
{
    [Attribute1]
    [Attribute2]
    [Attribute3]
    public string Foo { get; set; }
}

但是如果有更多的属性,比如 Foo,这就无法实现,因为 C# 不允许多重继承。

最佳答案

您可能会考虑使 C 成为接口(interface)并使用您的属性装饰接口(interface)属性 - 这解决了多重继承问题。

public interface IC
{
    [Attribute1]
    [Attribute2]
    [Attribute3]
    string Foo { get; set; }
}

关于c# - 在 C# 中的许多类中使用相同的一堆属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31834609/

相关文章:

python - 在 Python 中进行自动属性分配的最佳方法是什么,这是一个好主意吗?

c# - ODBC 架构 - 如何查找关系?

c# - 如何编写支持与可空类型之间的转换的通用转换方法?

c# - 查找文件的路径

c++ - 错误 C2512 : no appropriate default constructor available - Why if properties are being initialized in constructor?

c# - 为什么我不能使用 XmlSerializer 序列化只读字段?

c# - 如何在 C++ 中获取 C# 程序集的 GUID(程序集属性)

ruby-on-rails - 在模型的属性名称中包含 "ID"

c# - 沮丧和沮丧

c# - 基于视频生成的新帧率计算帧索引