`
ljl_xyf
  • 浏览: 634626 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C# 取得函数的调用关系

    博客分类:
  • c#
阅读更多

原创   如何取得C# 的函数调用关系 收藏

例如我又一个四个函数:

private void func1(){

//我想在这个取得这个函数是有谁来调用的,我想输出一下结果:


//func2() 调用来自 func3(),func3() 调用来自 func4(),请问可否实现

 System.Console.WriteLine("http://www.my400800.cn ");
}


private void func2(){

func1();

}


private void func3(){

func2();

}


private void func4(){

func3();

}

问题解答:

private void func1() {
   //在 func1添加如下方法就可以取得调用它的父函数名了
            StackFrame frame = new StackFrame(1);
            //frame.GetMethod().Name就是名字,frame.GetMethod()就是方法
            Console.WriteLine(" new StackFrame(1)=" + frame.GetMethod().Name);

            frame = new StackFrame(2);
            //frame.GetMethod().Name就是名字,frame.GetMethod()就是方法
            Console.WriteLine(" new StackFrame(2)=" + frame.GetMethod().Name);
            frame = new StackFrame(3);
            //frame.GetMethod().Name就是名字,frame.GetMethod()就是方法
            Console.WriteLine(" new StackFrame(3)=" + frame.GetMethod().Name);
            frame = new StackFrame(4);
            //frame.GetMethod().Name就是名字,frame.GetMethod()就是方法
            Console.WriteLine(" new StackFrame(4)=" + frame.GetMethod().Name);
}


输出结果如下:

 new StackFrame(1)=func2
 new StackFrame(2)=func3
 new StackFrame(3)=func4
 new StackFrame(4)=button2_Click

0
0
分享到:
评论

相关推荐

    C#与JAVASCRIPT函数的相互调用 C#调用JAVASCRIPT函数的调用 JAVASCRIPT调用C#函数的调用

    C#与JAVASCRIPT函数的相互调用 C#调用JAVASCRIPT函数的调用 JAVASCRIPT调用C#函数的调用

    自动生成函数调用关系图

    自动生成c++函数调用关系图,里面包含了所有要用到的软件,一站式服务; 通过本人亲测的使用总结; 还有使用到的配置文件(c++的),实在不会配置可以直接使用; 改一改配置文件,应该还可以生成c,java,c#语言的调用...

    Windows下生成函数关系调用图

    函数调用关系图是一种图形表示法,它以节点代表函数,边则表示函数间的调用关系。这种图可以帮助我们识别函数的依赖性,理解控制流程,尤其是在大型复杂项目中,这样的可视化工具尤为重要。通过这种方式,开发者可以...

    C# 子窗体调用父窗体函数(无参数)

    通过以上步骤,我们可以在C#的Windows Forms应用中实现子窗体无参数调用父窗体函数的功能。这种方法可以扩展到有参数的情况,只需修改父窗体的方法签名和子窗体的调用方式即可。在实际开发中,理解并熟练掌握这种...

    c#构造函数的调用过程

    最后一个构造函数调用了基类的构造函数`base(i)`来初始化`x`。 ```csharp class B : A { public int y; // 默认构造函数 public B() { y = 0; } // 带参数的构造函数 public B(int i) { y = i; } //...

    C# 获取调用函数 参数名称和值

    在C#编程中,获取调用函数的参数名称和值是一项常见的需求,特别是在日志记录、调试或动态处理参数时。下面将详细讲解如何在C#中实现这一功能。 首先,我们要了解C#中的反射机制。反射是.NET框架提供的一种强大工具...

    C#程序通过函数调用命令

    在C#编程中,函数调用是实现程序逻辑的重要方式,它允许我们将复杂的任务分解为可重用、独立的代码块。在这个场景中,我们讨论的是如何通过函数调用来执行操作系统命令。这个例子中展示了一个名为`addUser`的函数,...

    vb6调用C#Dll函数

    本文将详细介绍如何在VB6中调用C#编写的DLL函数。 首先,确保你的开发环境已安装了Visual Studio,因为它同时支持VB6和C#项目。创建C# DLL项目: 1. 打开Visual Studio,选择“新建项目”。 2. 在“新建项目”...

    C# 调用函数时动态获取参数名称和值

    首先,理解C#的基础:在C#中,函数参数在编译时就已经确定,因此在函数调用时直接通过位置或命名传递。然而,要动态获取参数名称和值,我们需要利用反射(Reflection)和表达式树(Expression Trees)这两个强大的...

    C#系统封装并调用_函数_系统封装_

    在编程领域,特别是使用C#语言时,系统封装和函数调用是两个核心概念,它们对于构建高效、可维护的软件至关重要。系统封装是将复杂的功能或者数据隐藏在类或接口内部,对外提供简洁的接口,以降低系统的耦合度和提高...

    C#调用c++函数的dll文件,同时实现c++调用c#函数

    总的来说,C#调用C++ DLL和C++调用C#函数是通过.NET Framework的互操作特性实现的,包括P/Invoke和C++/CLI。这种方式在处理系统级操作、利用现有C++库或需要高性能计算时非常有用。解压后的两个项目"Dll3"和...

    C# 调用C++DLL(函数参数包含指针)

    本篇文章将深入探讨如何在C#中调用一个C++DLL,特别是当DLL函数参数中包含指针时的处理方法。 首先,理解C#与C++之间的互操作性是关键。.NET框架提供了一个名为P/Invoke(Platform Invoke)的机制,允许C#代码调用...

    Javascript调用C#函数示例程序

    一个在HTML中使用Javascript的window.external调用C#内函数的示例程序。该方法可应用于网页程序开发中的网页-程序沟通,例如用C#的IHTMLWindow2.execScript替换HTML默认Javascript方法使其直接与C#传参、通讯。

    C#调用DLL中非托管C++函数参数类型对照

    在C#编程中,经常需要调用C++中的DLL类库,这就需要了解C++中的函数参数类型在C#中的对应关系。以下是基本数据类型的对照: * 一维数组:C#参数在基本类型前加ref或out,out表示有返回数据。例如调用C++的f(float[]...

    c#关于MATLAB中函数的调用

    在C#中调用MATLAB函数是实现跨语言交互的一种方式,这在工程计算和控制系统设计中非常有用。MATLAB提供了强大的数值计算和符号计算功能,而C#作为.NET框架的一部分,适合构建用户界面和系统级应用。通过MATLAB ...

    简化函数调用

    在编程领域,函数调用是实现模块化和代码重用的核心机制。函数允许我们将一系列相关的操作打包成一个可重复使用的单元,从而降低复杂性并提高代码的可读性。"简化函数调用"这一主题主要关注如何高效、简洁地使用和...

    C#动态调用DLL并对目标函数传递参数

    在.NET框架中,C#语言提供了强大的类型安全和编译时检查,但有时我们需要在运行时动态地加载和调用DLL中的函数,这种情况通常涉及到“反射”这一核心特性。本篇将深入探讨如何使用C#进行动态DLL调用以及如何向目标...

    C#调用C++动态库中自身定义的回调函数

    本主题将详细探讨如何在C#应用程序中调用C++动态链接库(DLL)中的函数,并且在这个过程中,C#能够注册和处理C++库中定义的回调函数。 首先,让我们理解回调函数的概念。回调函数是一种设计模式,允许将一个函数的...

    调用示例.rar_C#调用c++ dll_C#调用函数指针_C#调用结构体_结构体_调用C dll

    C#调用C++ dll, 包括结构体, 数组, 函数指针, 字符串等等

Global site tag (gtag.js) - Google Analytics