7

私は変数を持っています

public string MyVariable;

変数の名前を文字列として使用する必要があります。例:

var a = MyVariable.NameVariable();
// a = "MyVariable"

どうすればこれを行うことができますか?

miniORMを作成したいと思います(NHibernateは重すぎて、別のライブラリが必要です)。現時点での問題は、たくさんの定数を指摘しなければならないことです。例えば:

public const string FieldIdRules = "idRules"

そして、samonapisannomプロファイラーに関連してトランザクションを実行します。Hibernateはテキスト値(フィールドの比率)を指定する必要がないことを確認しました。同じことを実装したいです。

申し訳ありませんが私の悪い英語

4

2 に答える 2

2

ハッキーなアプローチ、あなたは経由することができますExpression

string myVariable = string.Empty;
Expression<Func<object>> expression = () => myVariable;

string name = (expression.Body as MemberExpression).Member.Name;
于 2013-02-27T04:25:53.350 に答える
1

名前で変数にアクセスできる場合は、すでにその名前があるので、と入力し"MyVariable"ます。

再割り当てした場合、これは不可能です。値は、変数名の履歴をどこかに保持しません。


したがって、フィールドから列へのマッピングを処理するために、をお勧めしDictionaryます。リフレクションは可能性がありますが、そのような単純なタスクでは不必要に複雑になります。

于 2013-02-27T04:01:39.220 に答える