吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1599|回复: 7
收起左侧

[已解决] C# 请教一个方法中取传递参数的变量nameof的问题

[复制链接]
cnahbb 发表于 2019-11-27 10:35
本帖最后由 cnahbb 于 2019-11-27 11:17 编辑
static void Log(int val)
{
        Console.WriteLine("{0}:{1}", nameof(val), val);
}

static void Main(string[] args)
{
        int a = 1234;
        Log(a);
        //这里输出 "val:1234",有没有办法输出"a:1234",a是传入变量的名字
}

谢谢大家

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Light紫星 发表于 2019-11-27 10:54
你把a的名字传进去呢
德古拉伯 发表于 2019-11-27 10:58
Light紫星 发表于 2019-11-27 10:59
或者这样写
[C#] 纯文本查看 复制代码
    class Program
    { 
        static void Log<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);
        }
        static void Main(string[] args)
        {
            int a = 1234;
            Log(()=>a);
            //这里输出 "val:1234",有没有办法输出"a:1234",a是传入变量的名字
        } 
    }
另类飞翔 发表于 2019-11-27 11:12
        /// <summary>
        /// 获取变量名称
        /// </summary>
        /// <param name="exp"></param>
        /// <returns>return string</returns>
        public static string GetVarName<T>(System.Linq.Expressions.Expression<Func<T, T>> exp)
        {
            return ((System.Linq.Expressions.MemberExpression)exp.Body).Member.Name;
        }

      bool test_name = true; //变量类型可随意
      string tips = test_name.GetVarName(it => test_name);
 楼主| cnahbb 发表于 2019-11-27 11:17
另类飞翔 发表于 2019-11-27 11:12
///
        /// 获取变量名称
        ///

谢谢大佬
 楼主| cnahbb 发表于 2019-11-27 11:17

兄弟 这是掩耳盗铃啊
 楼主| cnahbb 发表于 2019-11-27 11:18
Light紫星 发表于 2019-11-27 10:59
或者这样写
[mw_shl_code=csharp,true]
    class Program

谢谢大佬
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 22:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表