c#变量名转换为字符串

本文关键字:字符串 转换 变量名 | 更新日期: 2023-09-27 18:01:31

我有一个变量

public string MyVariable;

我需要使用变量的名称作为字符串。例子:

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

我该怎么做?

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

public const string FieldIdRules = "idRules"

然后在相关的samonapisannom分析器中进行事务处理。我发现Hibernate不需要指定文本值(用于字段的比例)。我想实现相同的

对不起我的英语不好

c#变量名转换为字符串

hack的方法,你可以通过Expression:

string myVariable = string.Empty;
Expression<Func<object>> expression = () => myVariable;
string name = (expression.Body as MemberExpression).Member.Name;

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

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


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