這不是枚舉的行爲(或應該表現)。你基本上創建了兩個不同的枚舉實例。這就是爲什麼C#中存在類。考慮創建一個類:
public class SomeEnum
{
public int Name;
public int Surname;
private SomeEnum(int name, int surname)
{
Name = name;
Surname = surname;
}
public static SomeEnum EnumA => new SomeEnum(1, 2);
public static SomeEnum EnumB => new SomeEnum(50, 60);
}
並改變你的方法是:
public void myMethod(User u, SomeEnum e)
{
// Enum e can be either EnumA or EnumB
// Do something with the Enum passed
}
我改變最少的代碼,儘可能我不知道目的是這些「枚舉」什麼的,但通過這種方式,您可以根據需要創建任意多個實例,而不會讓您的代碼混淆所有這些相同的Enum規範。
要使用EnumA的這種方法,例如您可以撥打myMethod(user, SomeEnum.EnumA)
。
這種方式只能使用指定的枚舉(EnumA
和EnumB
)。另外,如果你想創建即時枚舉,代碼可以改爲:
public class SomeEnum
{
public int Name;
public int Surname;
public SomeEnum(int name, int surname)
{
Name = name;
Surname = surname;
}
}
這樣你就可以調用該方法myMethod(user, new SomeEnum(1, 2))
。
你能舉出更多關於你想看到什麼輸出以及你如何調用'myMethod'的例子嗎?我還不清楚你正在努力完成什麼。 –
@BradleyUffner根據哪個枚舉通過我想要獲得所有的枚舉值 – erbsoftware
所有的枚舉都有'name'和'surname'成員嗎? –