有人可以告诉我是否可以将Arrays
Enum
个public enum FirstEnum
{
FirstValue,
SecondValue
}
public enum SecondEnum
{
FirstValue,
SecondValue
}
个值传递给同一个函数。
示例:
我有两个枚举:
public FirstEnum[] first = new FirstEnum[]{ FirstEnum.FirstValue,
FirstEnum.FirstValue,
FirstEnum.SecondValue };
public SecondEnum[] second = new SecondEnum[]{SecondEnum.FirstValue,
SecondEnum.SecondValue,
SecondEnum.SecondValue }
我有两个阵列:
public void WorkWithEnums(Enum[] myEnumValues)
{
// ....
}
现在我想要一个适用于它的功能:
WorkWithEnums(first);
WorkWithEnums(second);
我喜欢将我的数组传递给这个函数:
object[]
但不知怎的,它不起作用。如果我尝试使用Enum[]
代替{{1}}
任何想法?
答案 0 :(得分:1)
您的代码无效,因为covariance is not supported for value types(枚举是值类型)。
所以你可以使用:
WorkWithEnums(first.Cast<Enum>().ToArray())
答案 1 :(得分:0)
我建议将通用方法与“enum T”一起使用。例如,请参阅此问题的答案:Can you loop through all enum values?
无论如何,这里的主要影响者是你的用例。 WorkWithEnums()方法中预期的场景是什么?