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

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

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

阅读 7.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
Microsoft
子站问答
访问
宣传栏