接口的通用接口

时间:2017-07-06 10:07:01

标签: c# .net generics interface

前言:标题可能没有说明我遇到的真正问题。我只是不知道我能以更好更短的方式表达我的问题。

关于以下结构,我对C#中的通用接口实现有疑问:

public interface ITransition
{
    IState<ITransition> SourceState { get; }

    IState<ITransition> DestinationState { get; }
}

public interface IState<T> where T : ITransition
{
    List<T> Transitions { get; }

    StateType StateType { get; }
}

以下IState接口的实现:

public class FieldState : IState<FieldTransition>

然后我想要ITransition

这样的实现
public class FieldTransition : ITransition
{
    public IState<ITransition> SourceState { get;  }

    public IState<ITransition> DestinationState { get;  }

    private IIntent ConditionalIntent { get; }

    public FieldTransition(FieldState sourceState, FieldState destinationState,
        IIntent conditionalIntent)
    {
        SourceState = sourceState;
        DestinationState = destinationState;
        ConditionalIntent = conditionalIntent;
    }
}

但我得到的只是一个错误,FieldState无法转换为IState<Itransition>。我是否真的必须在构造函数实现中手动转换它,还是有更简单的方法来执行此操作?

0 个答案:

没有答案
相关问题