在C#中调用静态方法时会发生什么?

当创建一个类的实例时,该实例中的所有变量特定于该实例,并在实例超出范围时被杀死.但是如何在静态方法中工作?假设两个人完全同时调用System.Math.Abs​​().运行时间如何区分两个呼叫者?这是线程进来吗?是否为每个呼叫者自动创建单独的线程?

解决方法

静态和非静态方法在方法变量生命周期方面没有真正的区别.在这两种情况下,作为实现细节,本地人通常(不太总是:有异常)分配在堆栈上.堆栈是每个线程,所以本地方法变量不会在线程之间交叉.

实例和静态之间的唯一区别是实例方法具有由调用者推送的一个隐含的第零参数(又称为“this”)(加上一些虚拟调度和空检查功能).

为了简单起见,我正在掩饰迭代器块,捕获的变量等.

相关文章

项目中经常遇到CSV文件的读写需求,其中的难点主要是CSV文件...
简介 本文的初衷是希望帮助那些有其它平台视觉算法开发经验的...
这篇文章主要简单记录一下C#项目的dll文件管理方法,以便后期...
在C#中的使用JSON序列化及反序列化时,推荐使用Json.NET——...
事件总线是对发布-订阅模式的一种实现,是一种集中式事件处理...
通用翻译API的HTTPS 地址为https://fanyi-api.baidu.com/api...