C#获取字符串名称的名称

时间:2011-06-20 02:23:15

标签: c#

  

可能重复:
  How to get variable name using reflection?

如何获取字符串名称的名称而不是字符串的值

string MyString = "";
Response.Write(MyString.GetType().Name);//Couldn't get the string name not the value of the string

结果应显示字符串名称“MyString”

我找到了一些建议的代码并重写它以缩短它但仍然不喜欢它。

static string VariableName<T>(T item) where T : class
{
    return typeof(T).GetProperties()[0].Name;
}

Response.Write(VariableName(new {MyString})); 我正在寻找另一种方法,使其缩短如下,但没有如何使用转换当前类,所以我可以在同一行使用它们

  Response.Write( typeof(new { MyString }).GetProperties()[0].Name);

1 个答案:

答案 0 :(得分:0)

虽然Marcelo的回答(以及与“重复”问题的关联)将解释如何做你正在做的事情,但快速解释为什么你的代码不起作用。

GetType()完全按照说法执行:它获取调用它的对象的Type。在您的情况下,它将返回System.String,这是您的变量 Type引用的对象的MyString。因此,您的代码实际上会打印.Name的{​​{1}},而不是变量的名称(这是您真正想要的。)