在C#BOL类中正确实现接口
我一直在寻找一些类似的东西,但没有什么能完全回答我的问题。在这里,我有两门课。A、 我希望C类拥有这两类的所有属性。这是在对象层c#.net中 A类:在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
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
您不能重写任何内容,但可以访问继承的属性