C#继承:实现+;延伸

C#继承:实现+;延伸,c#,oop,inheritance,C#,Oop,Inheritance,在C#中可以这样做吗 我之所以需要它,是因为:我有两个类,其中一个是我将在我的类中实现的接口,但我还想使用另一个类中的方法,它做一些我想在我的类中使用的东西。C#不支持。您可以从一个类派生,并根据其他需要使用接口 语法: class MyClass : Foo, IFoo, IBar { } interface IFoo { } interface IBar { } class Foo { } 试试这个: using System; public interface A { v

C#
中可以这样做吗

我之所以需要它,是因为:我有两个类,其中一个是我将在我的类中实现的
接口,但我还想使用另一个类中的方法,它做一些我想在我的类中使用的东西。

C#不支持。您可以从一个类派生,并根据其他需要使用接口

语法:

class MyClass : Foo, IFoo, IBar
{
}

interface IFoo
{
}

interface IBar
{
}

class Foo
{
}
试试这个:

using System;

public interface A
{
    void DoSmth();
}

public class B
{
    public void OpA() { }
    public void OpB() { }
}

public class ClassC : B, A
{
    public void DoSmth(){}
}

请记住,您不能在特定的类级别继承两个类,它只能是一个类和任意数量的接口。

它应该如下所示:

public class MyClass: ClassB, InterfaceA{
}
ClassB是基类

接口A是一个接口


您只能扩展一个基类,但可以实现多个接口。

是的,您可以从一个类继承并实现任意数量的接口。
ClassA
ClassB
的使用有什么区别?你想把这两个函数都用作基类,对吗?@ryadavilli,但我该怎么做呢?我找不到正确的语法来使用…公共类MyClass:ClassA,IMyInterface{}@O.R.Mapper类A是一个接口,它没有实现。我将使实现成为我的MyClass,classB是一个实际的类,其代码是我希望我的类从中继承的。顺序重要吗?它确实。。。若从类继承,那个么基类必须先执行,然后是接口,否则编译器会出错。我自己测试过。
using System;

public interface A
{
    void DoSmth();
}

public class B
{
    public void OpA() { }
    public void OpB() { }
}

public class ClassC : B, A
{
    public void DoSmth(){}
}
public class MyClass: ClassB, InterfaceA{
}