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)
{
}
}