>>377
例えばこういう感じ

void ExternalCode(MyEnum e) {
int x = 0;
if (e == MyEnum.A) x = 1;
if (e == MyEnum.B) x = 2;
Console.WriteLine(x) }



static class MyEnumEx {
public static int GetX(this MyEnum e) {
if (e == MyEnum.A) return 1;
if (e == MyEnum.B) return 2;
return 0; } }

void ExternalCode(MyEnum e) {
Console.WriteLine(e.GetX()); }



class MyEnumBase {
public virtual int GetX() { return 0; } }
class MyEnumA : MyEnumBase {
public override int GetX() { return 1; } }
class MyEnumB : MyEnumBase {
public override int GetX() { return 2; } }

void ExternalCode(MyEnumBase e) {
Console.WriteLine(e.GetX()); }