怎么了?

    using QuickGraph;
    using GraphSharp;

     public class State
        {
            public string Name { get; set; }
            public override string ToString()
            {
                return Name;
            }
        }

     public class Event
        {
            public string Name;
            public override string ToString()
            {
                return Name;
            }
        }

    BidirectionalGraph<State, TaggedEdge<State, Event>> x =
                    new BidirectionalGraph<State, TaggedEdge<State, Event>>();

    GraphLayout graphLayout = new GraphLayout();
    graphLayout.Graph = x;


错误:

无法将类型QuickGraph.BidirectionalGraph<ChashaGraphSharp.State,QuickGraph.TaggedEdge<ChashaGraphSharp.State,ChashaGraphSharp.Event>>隐式转换为QuickGraph.IBidirectionalGraph<object,QuickGraph.IEdge<object>>。存在显式转换(您是否缺少演员表?)

如果我进行了强制转换,则应用程序启动时会出现错误错误,而没有任何信息

怎么了?

最佳答案

您需要使用IEdge类型而非TaggedEdge创建BidirectionGraph实例:

BidirectionalGraph<State, IEdge<State, Event>> x =
                new BidirectionalGraph<State, IEdge<State, Event>>();


我不能说我完全理解为什么会这样,但是上面的方法应该起作用。

编辑:我asked a question那种解释为什么这种强制转换不起作用。

08-18 09:14