簡體   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