zoukankan      html  css  js  c++  java
  • 黄聪:[C#]如何获取变量的名字,不是值,是名称。返回名字的字符串

    找了好久,最后在国外的论坛找到了解决办法,直接贴代码吧。

    方法一:

    public static class MemberInfoGetting
    {
         public static string GetMemberName<T>(Expression<Func<T>> memberExpression)
         {
             MemberExpression expressionBody = (MemberExpression)memberExpression.Body;
             return expressionBody.Member.Name;
         }
    }
    
    string TableName = "123";
    string nameOfTestVariable = MemberInfoGetting.GetMemberName(() => TableName);
    
    //最后得到 nameOfTestVariable  = "TableName"

     方法二:

    static void Main(string[] args) 
    {
      GetName(new { var1 });
      GetName2(() => var1);
      GetName3(() => var1);
    }
    
    static string GetName<T>(T item) where T : class 
    {
      return typeof(T).GetProperties()[0].Name;
    }
    
    static string GetName2<T>(Expression<Func<T>> expr) 
    {
      return ((MemberExpression)expr.Body).Member.Name;
    }
    
    static string GetName3<T>(Func<T> expr) 
    {
      return expr.Target.GetType().Module.ResolveField(BitConverter.ToInt32(expr.Method.GetMethodBody().GetILAsByteArray(), 2)).Name;
    }
  • 相关阅读:
    session
    php增删改查,分页
    sql题
    php简单的数据增删改查
    php简单登录注册验证
    js题
    jQHTML(获取内容和属性)
    jQ效果(动画)
    Codeforces Round #460 (Div. 2): D. Substring(DAG+DP+判环)
    POJ 2891 中国剩余定理(不互素)
  • 原文地址:https://www.cnblogs.com/huangcong/p/3459307.html
Copyright © 2011-2022 走看看