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

前端之家收集整理的这篇文章主要介绍了在C#中调用静态方法时会发生什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当创建一个类的实例时,该实例中的所有变量特定于该实例,并在实例超出范围时被杀死.但是如何在静态方法中工作?假设两个人完全同时调用System.Math.Abs​​().运行时间如何区分两个呼叫者?这是线程进来吗?是否为每个呼叫者自动创建单独的线程?

解决方法

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

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

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

原文链接:https://www.f2er.com/csharp/96351.html

猜你在找的C#相关文章