C#变量名到字符串

C#变量名到字符串,c#,C#,我有一个变量 public string MyVariable; 我需要使用变量名作为字符串。例如: var a = MyVariable.NameVariable(); // a = "MyVariable" 我该怎么做 我想创建你的迷你表单(NHibernate太重了,需要一个单独的库)。现在的问题是,我必须指出一些常数。例如: public const string FieldIdRules = "idRules" 然后在samonapisannom profiler中进行事务处理。

我有一个变量

public string MyVariable;
我需要使用变量名作为字符串。例如:

var a = MyVariable.NameVariable();
// a = "MyVariable"
我该怎么做

我想创建你的迷你表单(NHibernate太重了,需要一个单独的库)。现在的问题是,我必须指出一些常数。例如:

public const string FieldIdRules = "idRules"
然后在samonapisannom profiler中进行事务处理。 我看到Hibernate不需要指定文本值(字段的比率)。我想实现同样的功能


对不起,我的英语不好

如果您可以通过名称访问变量,那么您已经有了它的名称,因此请键入
“MyVariable”

如果您重新分配了它,这是不可能的。值不会在某个地方保留变量名的历史记录



因此,为了处理字段到列的映射,我建议使用
字典
。反射是一种可能性,但对于这样一个简单的任务来说,反射是不必要的复杂。

黑客方法,您可以通过
表达式获得:

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

string name = (expression.Body as MemberExpression).Member.Name;
string myVariable=string.Empty;
表达式=()=>myVariable;
字符串名称=(expression.Body作为MemberExpression).Member.name;

这个堆栈溢出答案可能会帮助您:谢谢Aaron Blenkush8,如果名称发生更改,它会在编译时告诉您。