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;
    }
  • 相关阅读:
    this关键字
    方法重载和方法重写
    构造方法
    Java数据类型以及变量的定义
    Java 语言概述
    Java Socket通信
    类图
    JAVA语言编程注意事项
    Scanner--控制台输入
    java运算符
  • 原文地址:https://www.cnblogs.com/huangcong/p/3459307.html
Copyright © 2011-2022 走看看