2011-11-27 6 views
10

Enum.GetValuesリターンベースArrayタイプを参照し、Enum.GetNamesstringの配列を返します。しかし、私はこれがどのように非常に重要であるか理解していません。とにかくenumの場合、値は文字列です。Enum.GetValuesとEnum.GetNamesの相違点

しかし、関連する問題があります。 DataGridViewComboBox列のデータは、DataSource = Enum.GetValuesとすればenumになりますが、Enum.GetNamesDataSourceとするとデータバインドは行われません。

答えて

12

GetValuesは、Enumの各項目の基本値の配列を返します。

GetNamesは、列挙型の項目の名前の文字列配列を返します。

GetValuesによって返された配列は、GetNamesによって返された文字列[]がバインディングの違いを説明している間にIListを実装します。

+0

クール:GetValues()は-1、0と1


を含むint配列を返します。ここでのDataGridViewのドロップダウンに列挙名をバインドする例があります。わかった。ありがとうcompetent_tech! –

14

数値は実際には数値です。 GetNamesはフィールド名を返します。 GetValuesは数値を返します。

MSDNにはGetValuesという素晴らしいサンプルがあります。

11

名前/値のペアとして列挙を考えてください。上記の例で

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

GetNames()項目「負」、「ゼロ」を含むstring配列を返し、「正」であろうCreate drop down list options from enum in a DataGridView

関連する問題