2011-01-13 4 views
1

ユーザは、「Color」という名前の列挙型名と「red」という値を入力して、そのメンバーの値であるかどうかを伝えたいと思いますまたは列挙が存在する場合でも可能です。C#でユーザ提供の列挙値を解析する

どうすればいいですか?

以前は、Type.GetType( "UserProvidedType")Parse/Convert.ChangeTypeを使用していましたが、ユーザー指定の型が列挙型の場合は動作しません。このコンテキストでは動作しない過去のソリューションについては、 Parsing to primitive types, based on user input in c# を参照してください。

ありがとうございました。

+0

値は文字列/列挙型/整数型ですか?サンプルメソッドシグネチャを提供できますか? – Ani

+0

認識される値は文字列になります。しかし、ユーザーは列挙型を表す文字列も提供します。だから彼らは "色"、 "赤"と言うでしょう、そして、はい、赤が色だと言うボタンをクリックします。または "mysteriousEnum" "red"をクリックすると、 "unrecognized Enum"が出てきます。また、 "Color" "Food"はEnumでそのような値を返しません。 – user420667

答えて

6
var type = Type.GetType("YourNameSpace.Color"); 
var belongs = Enum.GetNames(type).Any(o => o == "Red"); 
+0

hm ...それは奇妙です。上記を試してみると、oTypeはnullです。 – user420667

+0

var type = Type.GetType( "System.Drawing.Color")が機能しない – HABJAN

+0

急いでダウンウィートしないでください:-) –

関連する問題