在c#的许多类中使用相同的一组属性

本文关键字:一组 属性 许多类 | 更新日期: 2023-09-27 18:06:41

我试图在许多类中使用相同的一堆属性。如何在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#的许多类中使用相同的一组属性

您可以考虑使C成为一个接口,并用您的属性装饰接口属性-这解决了多重继承问题。

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