Enum.GetValues和Enum.GetNames之间的差异

问题描述:

我看到Enum.GetValues返回基地Array类型和Enum.GetNames返回一个string数组。但我不明白这是如此重要。无论如何,对于enum,这些值是字符串。Enum.GetValues和Enum.GetNames之间的差异

但是,有一个相关的问题。 DataGridViewComboBox列数据绑定到enum如果我给DataSource = Enum.GetValues,但它不会数据绑定,当我给它Enum.GetNames作为DataSource

GetValues将返回Enum中每个项目的基础值数组。

GetNames将返回枚举中项目的名称的字符串数组。

GetValues返回的数组实现IList,而GetNames返回的字符串[]不会,这解释了绑定的差异。

+0

冷却。我现在明白了。感谢competent_tech! –

枚举实际上是数字。 GetNames返回字段名称。 GetValues返回数值。

MSDN在GetValues上有很好的示例。

将枚举看作名称/值对。

enum SignMagnitude { Negative = -1, Zero = 0, Positive = 1 }; 

在上面的例子,GetNames()将返回一个string阵列包含的项目“负”,“零”和“积极的”。 GetValues()将返回一个int阵列含有-1,0和1


有在这里一个DataGridView枚举名称绑定到一个下拉的例子:Create drop down list options from enum in a DataGridView