C# 获取变量名

扫码查看
转自:https://blog.csdn.net/gongzixiaobai8842/article/details/86649116 

c# 6.0 支持nameof方法去获取变量名

测试示例

  1. static void Main(string[] args)
  2. {

  3.     string abc = "123";
  4.     int b = 1;
  5.     test(abc, nameof(abc));
  6.     test(b, nameof(b));
  7.     Console.ReadKey();
  8. }

  9. static void test(object obj, string name)
  10. {
  11.     Console.WriteLine(name);
  12. }

=======================================

旧版本通过反射实现(比较慢)

测试示例

  1. static void Main(string[] args)
  2. {
  3.     string abc = "123";
  4.     int b = 1;
  5.     test(() => abc);
  6.     test(() => b);
  7.     Console.ReadKey();
  8. }

  9. static void test<T>(Expression<Func<T>> expression)
  10. {
  11.     var me = expression.Body as MemberExpression;
  12.     var name = me.Member.Name;
  13.     var value = expression.Compile().Invoke();
  14.     Console.WriteLine(name);
  15.     Console.WriteLine(value);
  16. }

09-04 18:45
查看更多