私はこのような列挙型を持っています。
public enum eTypeVar
{
Int,
Char,
Float
};
そして、私はそれをタイプに変換して、次のようなことをしたいと思います:
eTypeVar type=eTypeVar .Int;
string str= eTypeVar.ToString .ToLower();
(str as type) a=1;
どうすればいいですか?
Enum.Parse
次のように使用できます。
YourEnumType realValue = Enum.Parse(typeof(YourEnumType), "int");
私はあなたが必要なものは次のとおりだと思います:
Dictionary<eTypeVar, Type> _Types = new Dictionary<eTypeVar, Type> {
{ eTypeVar.Int, typeof(Int32) },
{ eTypeVar.Char, typeof(Char) },
{ eTypeVar.Float, typeof(Single) }
};
public Boolean Check(eTypeVar type, Object value)
{
return value.GetType() == _Types[type];
}
変数を別の変数宣言の型に変換することはできません。デザインを考え直す必要があります。とにかく、それはあなたがしていることを意味しません。intを使用したいことがわかっている場合は、それを宣言してみませんか。
String name = "int";
int value = 1;
何らかの理由で動的コードが必要な場合は、Reflectionとジェネリックメソッドを使用できます。
public void DoSomething<T>(T value)
{
....
}
次に、リフレクションを使用して実行時にメソッドを構築し、それを呼び出すことができます。ただし、現時点では、この機能を使用するには、C#のより基本的な機能が必要だと思います。
あなたはこれを試すことができます...例えばあなたはこのような列挙型を持っています
public enum Emloyee
{
None = 0,
Manager = 1,
Admin = 2,
Operator = 3
}
次に、列挙型をこれに変換します
Emloyee role = Emloyee.Manager;
int roleInterger = (int)role;
列挙型から文字列への終了。
Emloyee role = Emloyee.Manager;
string roleString = role.ToString();