知识大全 浅析VB.NET局部静态变量

Posted 变量

篇首语:志不强者智不达,言不信者行不果。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 浅析VB.NET局部静态变量相关的知识,希望对你有一定的参考价值。

浅析VB.NET局部静态变量  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  经过长时间学习VB NET局部静态变量 于是和大家分享一下 看完本文你肯定有不少收获 希望本文能教会你更多东西 VB NET能够实现很多C#不能做到的功能 如When语句 Optional参数 局部Static变量 对象实例访问静态方法 Handles绑定事件 On Error处理异常 Object直接后期绑定等等 VB和C#同属 NET的语言 编译出来的是同样的CIL 但为什么VB支持很多有趣的特性呢 我们一起来探究一下VB NET局部静态变量

  VB NET局部静态变量

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

     Public Sub Test () Static i As Integer i +=    实现一个过程调用计数器 End Sub

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

      field private specialname int  $STATIC$Test $ $i

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

cha138/Article/program/net/201311/13413

相关参考

知识大全 浅析php变量修饰符static的使用

  静态变量仅在局部函数域中存在但当程序执行离开此作用域时其值并不丢失看看下面的例子:复制代码代码如下:functiontest()static$a=;$a++;echo$a;  test();//t

知识大全 VB.NET中的模块

VB.NET中的模块  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在C#中有静态类的概念自然里

知识大全 vb.net字符串的操作应用

  字符串的操作应用  [vb]  ModuleModule  SubMain()  定义个字符串变量  DimstrstrstrAsString  给strstr付初值  str=Hello:str

知识大全 用vb.net实现写字板程序报告

先看看界面  >  声明一个全局boolean变量,用来标记richtextbox中文本变化和保存情况    DimbSaveAsBoolean  PrivateSubrtbox_TextChange

知识大全 C#教程:隐式类型的局部变量

C#教程:隐式类型的局部变量  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  隐式类型的局部变量 

知识大全 从VB 6迁移到VB.NET的进展至今仍旧缓慢

从VB6迁移到VB.NET的进展至今仍旧缓慢  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在发布V

知识大全 VB.NET中声音的播放

VB.NET中声音的播放  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 由VB升级为NET后有些人

知识大全 与VB .NET一起使用.NET Framework

与VB.NET一起使用.NETFramework  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 JVM中的栈和局部变量

深入Java核心:JVM中的栈和局部变量  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java

知识大全 VB.NET如何在没有.NET框架的机器上运行

VB.NET如何在没有.NET框架的机器上运行  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  制