加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 17:37:01 所属栏目:百科 来源:网络整理
导读:当创建一个类的实例时,该实例中的所有变量特定于该实例,并在实例超出范围时被杀死.但是如何在静态方法中工作?假设两个人完全同时调用System.Math.Abs??().运行时间如何区分两个呼叫者?这是线程进来吗?是否为每个呼叫者自动创建单独的线程? 解决方法 静态
当创建一个类的实例时,该实例中的所有变量特定于该实例,并在实例超出范围时被杀死.但是如何在静态方法中工作?假设两个人完全同时调用System.Math.Abs??().运行时间如何区分两个呼叫者?这是线程进来吗?是否为每个呼叫者自动创建单独的线程?

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读