私は C の列挙型に慣れていますが、C# で列挙型がどのように扱われるかについてはまだ少し混乱しています。次のようなインターフェイスをC#で実装したい
enum foo {
one,
two
}
interface Ibar {
enum foo {get;}
}
ここで、インターフェイス Ibar を実装するクラスは、プロパティ foo が取得されると、foo.one または foo.two のいずれかを返します。たとえば、
class bar : Ibar {
enum foo {
get { return foo.one; }
}
}
私ができるようにできる
bar b = new bar;
if (b.foo == foo.one) {... }
上記のインターフェイス コードでは、インターフェイス内で列挙型を定義する必要があります (';' は ',' である必要があります)。
関連する最も近い投稿はhttp://bytes.com/topic/c-sharp/answers/524824-enum-property-interfaceですが、列挙型はクラス内で定義されています。