C# 如何通过形参获得实参的名字?

发布于 2022-09-01 05:29:20 字数 1283 浏览 28 评论 0

我在网上看到一段代码,可获得形参的名字:
(我写完整了)

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string string1 = "dgd";
            string string2 = "gfd";
            MyFunc(string1, string2);
        }

        private static void MyFunc(string str1, string str2)
        {
            var stackTrace = new StackTrace();
            var stackFrame = stackTrace.GetFrame(0);           
            // 如果要获取上层函数信息调用 GetFrame(1), 这样就可以写成通用函数了

            var methodBase = stackFrame.GetMethod();
            Console.WriteLine("函数名:" + methodBase.Name);

            var parameterInfos = methodBase.GetParameters();

            foreach (var parameterInfo in parameterInfos)
            {
                Console.WriteLine("参数信息:" + parameterInfo.Name);
            }
        }
    }
}

运行结果:
函数名:MyFunc
参数信息:str1
参数信息:str2
请按任意键继续. . .

但是,我想要的是:
实参名称:string1
实参名称:string2

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文