別のアセンブリのメソッドで使用される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に属し、それ自体では意味がありません)、さらに重要なことに、コードを変更する必要があります。これを使用する他の多くのアセンブリ。何か解決策を思いつくことができますか?