繁体   English   中英

Enum.GetValues 和 Enum.GetNames 的区别

[英]Difference between Enum.GetValues and Enum.GetNames

我看到Enum.GetValues返回基本Array类型,而Enum.GetNames返回一个string数组。 但我不明白这是多么重要。 无论如何,对于enum ,值是字符串。

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

GetValues将为 Enum 中的每个项目返回一个包含基础整数值的数组。

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

GetValues 返回的 Array 实现了 IList 而 GetNames 返回的 string[] 没有实现,这就解释了绑定差异。

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

MSDN 在GetValues上有一个很好的示例。

将枚举视为名称/值对。

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

在上面的示例中, GetNames()将返回一个string数组,其中包含项“Negative”、“Zero”和“Positive”。 GetValues()将返回的数组SignMagnitude含有SignMagnitude.NegativeSignMagnitude.ZeroSignMagnitude.One


这里有一个将枚举名称绑定到 DataGridView 中的下拉列表的示例: 从 DataGridView 中的枚举创建下拉列表选项

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM