在C#BOL类中正确实现接口

在C#BOL类中正确实现接口,c#,.net,C#,.net,我一直在寻找一些类似的东西,但没有什么能完全回答我的问题。在这里,我有两门课。A、 我希望C类拥有这两类的所有属性。这是在对象层c#.net中 A类: public class A { public string property1 { get; set; } } public class B { public string anotherproperty { get; set; } } public interface IB { B b { get; set; } } pub

我一直在寻找一些类似的东西,但没有什么能完全回答我的问题。在这里,我有两门课。A、 我希望C类拥有这两类的所有属性。这是在对象层c#.net中

A类:

public class A
{
  public string property1 { get; set; }
}

public class B
{
  public string anotherproperty { get; set; }
}

public interface IB
{
  B b { get; set; }
}

public class C : A, IB
{
  //nothing here cause hopefully it inherits everything
}
我不知道我的实现是否很接近。我确实收到错误消息“C不实现接口成员IB”

有人知道怎么做吗

我有两节课。A、 我希望C类拥有这两类的所有属性

…然后您必须手动将A或B的属性添加到C。抱歉,C不支持多重继承


然而,在大多数情况下,不需要多重继承。一种常见的替代方法是使用组合而不是继承:例如,您可以让类C提供对A和B实例的引用:

public class C
{
    private A a = new A();
    private B b = new B();

    public A A { get { return a; } }
    public B B { get { return b; } }
}
这将允许您通过
myC.A.property1
myC.B.anotherproperty
访问所有属性


如果您确实需要将
C
A
B
的实现结合起来,您可能需要查看C#的库。

您可以执行以下操作:

    public class ClassA
    {
        public string AProp { get { return "AProp";} }
    }

    public class ClassB : ClassA
    {
        public string BProp { get { return "BProp"; } }
    }

    public class ClassC : ClassB
    {

    }
然后:

ClassC c = new ClassC();
Console.WriteLine(c.AProp);
Console.WriteLine(c.BProp);
印刷品:

停机坪

BProp

您不能重写任何内容,但可以访问继承的属性