VB.NET局部静态变量的示例分析

介绍

这篇文章将为大家详细讲解有关VB。净局部静态变量的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

VB支持用静态关键字声明局部变量,这样在过程结束的时候可以保持变量的数值:

  <李> 

Public  Sub  Test1 (), Static 我
, As  Integer 小姐:+=,1,

<李>

& # 39;实现一个过程调用计数器,最终获得Sub 

我们实现了一个简单的过程计数器。每调用一次测试中,计数器的数值就增加1。其实还有很多情况我们希望保持变量的数值。而c#的静态是不能用在过程内部的。因此要实现过程计数器,我们必须声明一个类级别的变量。这样做明显不如VB好。因为无法防止其他过程修改计数器变量。这就和对象封装一个道理,本来应该是一个方法的局部变量,现在我要被迫把它独立出来,显然是不好的设计。那么VB是怎么生成局部静态变量的呢?将上述代码返汇编,我们可以清楚地看到在VB生成的CIL中,我不是作为局部变量,而是作为类的字段出现的:

  <李> 

.field  private  specialname 
int32 静态Test1 2001美元美元小姐:

也就是说,我被改名作为一个类的字段,但被冠以specialname。在代码中试图访问静态Test1 2001美元美元我是不可能的,因为它不是一个有效的标识符。但是在中,将这个变量加一的代码却与一般的类字段完全一样,是通过ldfld加载的。我觉得这个方法十分聪明,把静态变量变成生命周期一样的类字段,但是又由编译器来控制访问的权限,让它成为一个局部变量,同时也解释了VB为什么要用两个不同的关键字来声明静态变量和终止,和终止,静态的和共享的。

由于VB.NET局部静态变量的实质是类的字段,所以它和真正的局部变量还是有所不同的。比如在多线程条件下,对VB。净局部静态变量的访问就和访问字段相同。

关于“VB.NET局部静态变量的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。

VB.NET局部静态变量的示例分析