0

私はこのような列挙型を持っています。

public enum eTypeVar
{
    Int,
    Char,
    Float
};

そして、私はそれをタイプに変換して、次のようなことをしたいと思います:

eTypeVar type=eTypeVar .Int;
string str= eTypeVar.ToString .ToLower();
(str as type) a=1;

どうすればいいですか?

4

3 に答える 3

4

Enum.Parse次のように使用できます。

YourEnumType realValue = Enum.Parse(typeof(YourEnumType), "int");
于 2012-10-10T11:20:35.357 に答える
0

私はあなたが必要なものは次のとおりだと思います:

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#のより基本的な機能が必要だと思います。

于 2012-10-10T11:20:46.610 に答える
0

あなたはこれを試すことができます...例えばあなたはこのような列挙型を持っています

  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();
于 2012-10-10T11:29:34.800 に答える