C# 如何指定和使用真正的接口?

C# 如何指定和使用真正的接口?,c#,C#,是否可以指定必须使用接口实现方法的真实接口` 或者这是如何实现我想要的: public interface IGraph { void addEdge(IGraphVertex a, IGraphVertex b); } public interface IGraphVertex { } // problematic code public class Graph2d : IGraph { public void addEdge(Graph2dVertex a, Gra

是否可以指定必须使用接口实现方法的真实接口` 或者这是如何实现我想要的:

public interface IGraph
{
    void addEdge(IGraphVertex a, IGraphVertex b);
}

public interface IGraphVertex
{

}

// problematic code


public class Graph2d : IGraph
{
    public void addEdge(Graph2dVertex a, Graph2dVertex b)
    {

    }
}

public class Graph2dVertex : IGraphVertex
{

}

我得到的错误是Graph2d没有实现
addVertex(IGraphVertex a,IGraphVertex b)

您需要修复Graph2h类中的方法签名:

public class Graph2d : IGraph
{
   public void addVertex(IGraph2dVertex a, IGraph2dVertex b)
   {

   }
}

您需要一个通用接口:

public interface IGraphVertex
{

}

public interface IGraph<T>
    where T: IGraphVertex
{
    void addEdge(T a, T b);
}
公共接口
{
}
公共接口图
其中T:igraphs顶点
{
无效补遗(T a,T b);
}
然后:

公共类Graph2dVertex:IGraphVertex
{
}
公共类图形2d:IGraph
{
公共无效补遗(Graph2dVertex a、Graph2dVertex b)
{
}
}

接口方法使用IGraphVertex,您的实现使用GraphVertex。(注意缺少的I)
public class Graph2dVertex : IGraphVertex
{

}

public class Graph2d : IGraph<Graph2dVertex>
{
    public void addEdge(Graph2dVertex a, Graph2dVertex b)
    {

    }
}