枚举的接口



我正在尝试使用连接客户端和服务器组件的接口将现有的 C# 项目移植到新的分布式项目(这是一个用于大学练习的 Sokoban 游戏)。

这是我的问题:

在一个组件中,比如:级别.cs,我有:

水平.cs

namespace Sokoban
{
public enum MoveDirection { Right, Left, Down, Up }

public class Level
    {
    private MoveDirection sokoDirection = MoveDirection.Right;
    ...
    }
...
}

另一方面,接口:

接口.cs:

namespace Interfaces
    {
    public class ILevel : MarshalByRefObject
        {
        ---> what should i place here??? <---
        }
    }

我尝试了以下选项,但没有成功:

接口.cs:

public virtual enum MoveDirection { get; set; }
public virtual enum MoveDirection() { throw new NotImplementedException(); }

等级.cs:

public static enum MoveDirection { return { Right, Left... }; }
public static enum MoveDirection { get { return { right, Left, ...}; } }
public interface ILevel
{
     MoveDirection MoveDirection { get; set; }
}

和实施:

public class Level : MarshalByRefObject, ILevel
{
     public MoveDirection MoveDirection { get; set; }    
}
我不知道

我是否完全符合这个问题。也许是这种情况,您希望为所有实现接口或使用类的类提供一个枚举。我也尝试通过接口提供枚举。但是没有运气。

我是 C# 初学者,所以我可能微不足道的方法是:
1. 通过抽象类提供它。它可以工作,但是如果最初足以使用接口(编写overwrite等),则在类定义中会有一些开销。
2. 我的解决方法是在单独的命名空间中提供枚举,即包含在您需要它的任何位置.
例如,在您的情况下:


接口.cs

using Enumerations;
namespace Interfaces
{
    interface ILevel : MarshalByRefObject
    {
        int changeDirection(MoveDirection newDirection);
    }
}
namespace Enumerations
{
    public enum MoveDirection { Right, Left, Down, Up };
}

相关内容

  • 没有找到相关文章

最新更新