c# 6.0 支持nameof方法去获取变量名
测试示例
- static void Main(string[] args)
- {
- string abc = "123";
- int b = 1;
- test(abc, nameof(abc));
- test(b, nameof(b));
- Console.ReadKey();
- }
- static void test(object obj, string name)
- {
- Console.WriteLine(name);
- }
=======================================
旧版本通过反射实现(比较慢)
测试示例
- static void Main(string[] args)
- {
- string abc = "123";
- int b = 1;
- test(() => abc);
- test(() => b);
- Console.ReadKey();
- }
- static void test<T>(Expression<Func<T>> expression)
- {
- var me = expression.Body as MemberExpression;
- var name = me.Member.Name;
- var value = expression.Compile().Invoke();
- Console.WriteLine(name);
- Console.WriteLine(value);
- }