我在 API 中有一个抽象类,由另一个程序集中的方法使用。该类在其中定义了一个嵌套枚举,有点像这样:
abstract public class Thing
{
public enum Status { Accepted, Denied, Pending };
abstract public Status status { get; private set; }
etc...
}
然后我决定如果 Thing 是一个界面,那将是一个更好的设计。但我不能这样做:
public interface Thing
{
enum Status { Accepted, Denied, Pending };
Status status { get; }
etc...
}
这会产生错误消息“接口无法声明类型”。但是,如果我将枚举的定义移到接口之外,首先我会破坏封装(状态类型确实属于 Thing 并且本身没有意义),更重要的是我必须去修改代码许多其他使用它的程序集。你能想出什么解决办法吗?