Chinaunix首页 | 论坛 | 博客
  • 博客访问: 679953
  • 博文数量: 156
  • 博客积分: 120
  • 博客等级: 入伍新兵
  • 技术积分: 872
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-03 19:50
个人简介

转载一些技术文章,分享给大家。

文章分类

全部博文(156)

文章存档

2020年(52)

2019年(102)

我的朋友

分类: C#/.net

2020-03-28 13:35:47

转自: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. }

阅读(53) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~