我的编程空间,编程开发者的网络收藏夹
学习永远不晚

VB.NET中怎么操作局部变量

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

VB.NET中怎么操作局部变量

本篇文章为大家展示了VB.NET中怎么操作局部变量,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

VB.NET开发工具的出现对开发领域提供了一个全新的编写方式。作为程序员来说,他们又多了一种编程语言的选择,这是一件好事。我们知道,在类或者结构初始化的时候, 成员变量***不要显式赋以0、Nothing、False等初值,这样不但没有必要而且会降低性能。因为成员变量首先会被分配内存空间,并且该内存空间自动用“0”进行初始化,因此显式的赋值会增加指令操作而影响性能。

但如果是VB.NET局部变量呢?

一般情况下,如果不显式初始化局部变量,局部变量会被自动也赋以空值、0、或者false。

  1. '例如以下代码  

  2. Dim b As Boolean  

  3. Console.WriteLine(b)  

  4. Dim rnd1 As Random  

  5. If rnd1 Is Nothing Then  

  6. Console.WriteLine("yes")  

  7. End If  

  8. '最终会输出:"false yes" 

不过对于引用类型的Random,编译器会给出“ 变量“rnd1”在赋值前被使用。可能会在运行时导致 null 引用异常。” 的警告。值类型则没有任何警告。

ok,再来看下这段VB.NET局部变量的代码:

Module Module1Module Module1  Sub Main()Sub Main()  Dim rnd As New Random(1000)  For i As Integer = 0 To 4  Dim b As Boolean  Console.WriteLine(b)  If rnd.NextDouble > 0.5 Then  b = True End If  Next  End Sub  End Module

Module Module1

Sub Main()  Dim rnd As New Random(1)  For i As Integer = 0 To 9  Dim b As Boolean  Console.WriteLine(b)  If rnd.NextDouble < 0.5 Then  b = True End If  Next  For i As Integer = 0 To 9  Dim rnd1 As Random  If rnd1 Is Nothing Then  Console.WriteLine("yes")  Else  Console.WriteLine("no")  End If  rnd1 = New Random  Next  End Sub  End Module

照说每次循环都重新定义并初始化该VB.NET局部变量,期望的输出值应该一直都是false。

但猜猜实际最终输出结果是什么,false,false,false,true,true!!

就是这个怪诞的行为让我困扰了很久。

ok,我们看看对应的il代码:

  1. .method public static void Main
    () cil managed  

  2. {  

  3. .custom instance void [mscorlib]
    System.STAThreadAttribute::.ctor()  

  4. .entrypoint  

  5. .maxstack 2  

  6. .locals init (  

  7. [0] class [mscorlib]System.Random rnd,  

  8. [1] bool b,  

  9. [2] int32 i,  

  10. [3] bool VB$CG$t_bool$S0,  

  11. [4] int32 VB$CG$t_i4$S0,  

  12. [5] int32 num)  

  13. L_0000: nop   

  14. L_0001: ldc.i4 0x3e8  

  15. L_0006: newobj instance void 
    [mscorlib]System.Random::.ctor(int32)  

  16. L_000b: stloc.0   

  17. L_000c: ldc.i4.0   

  18. L_000d: stloc.2   

  19. L_000e: ldloc.1   

  20. L_000f: call void [mscorlib]System.
    Console::WriteLine(bool)  

  21. L_0014: nop   

  22. L_0015: ldc.i4.1   

  23. L_0016: stloc.1   

  24. L_0017: nop   

  25. L_0018: ldloc.2   

  26. L_0019: ldc.i4.1   

  27. L_001a: add.ovf   

  28. L_001b: stloc.2   

  29. L_001c: ldloc.2   

  30. L_001d: ldc.i4.4   

  31. L_001e: stloc.s num  

  32. L_0020: ldloc.s num  

  33. L_0022: ble.s L_000e  

  34. L_0024: ldc.i4.0   

  35. L_0025: stloc.s VB$CG$t_i4$S0  

  36. L_0027: ldloc.3   

  37. L_0028: call void [mscorlib]System.
    Console::WriteLine(bool)  

  38. L_002d: nop   

  39. L_002e: ldc.i4.1   

  40. L_002f: stloc.3   

  41. L_0030: nop   

  42. L_0031: ldloc.s VB$CG$t_i4$S0  

  43. L_0033: ldc.i4.1   

  44. L_0034: add.ovf   

  45. L_0035: stloc.s VB$CG$t_i4$S0  

  46. L_0037: ldloc.s VB$CG$t_i4$S0  

  47. L_0039: ldc.i4.4   

  48. L_003a: stloc.s num  

  49. L_003c: ldloc.s num  

  50. L_003e: ble.s L_0027  

  51. L_0040: nop   

  52. L_0041: ret   

上述内容就是VB.NET中怎么操作局部变量,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

VB.NET中怎么操作局部变量

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

VB.NET中怎么操作局部变量

本篇文章为大家展示了VB.NET中怎么操作局部变量,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。VB.NET开发工具的出现对开发领域提供了一个全新的编写方式。作为程序员来说,他们又多了一种编程语言的
2023-06-17

VB.NET局部静态变量怎么用

这篇文章主要为大家展示了“VB.NET局部静态变量怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET局部静态变量怎么用”这篇文章吧。VB.NET局部静态变量VB支持用Static关
2023-06-17

VB.NET中怎么操作结构变量

这期内容当中小编将会给大家带来有关VB.NET中怎么操作结构变量,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。大家在VB.NET编程中需要对结构进行创建,来满足我们的编程需求。那么在结构创建之后,可将过程
2023-06-17

Golang函数中的变量作用域:局部变量和全局变量

Golang函数中的局部变量和全局变量,需要具体代码示例在Golang中,变量的作用域是非常重要的概念。在函数中,我们常常会遇到局部变量和全局变量的情况。这两者在作用域和使用方式上有一些区别,下面我将详细介绍它们,并给出具体的代码示例。
Golang函数中的变量作用域:局部变量和全局变量
2024-01-18

java局部变量怎么赋值给全局变量

在Java中,局部变量是在方法内部定义的变量,它的作用范围仅限于该方法。全局变量是在类的范围内定义的变量,可以被类中的所有方法访问。要将局部变量的值赋给全局变量,可以在类的范围内定义一个全局变量,并在方法内部将局部变量的值赋给全局变量。以下
2023-10-10

python中全局变量和局部变量有什么区别

python中全局变量和局部变量有什么区别?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;
2023-06-14

Python中怎么使用非局部变量

这篇文章将为大家详细讲解有关Python中怎么使用非局部变量,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。全局变量在 Python 中,在函数之外或在全局范围内声明的变量被称为全局变量。 这
2023-06-17

java中SimpleDateFormat怎么转换局部变量

这篇文章将为大家详细讲解有关java中SimpleDateFormat怎么转换局部变量,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、说明将SimpleDateFormat定义为局部变量时,每个线程都独
2023-06-15

java中什么是局部变量

今天就跟大家聊聊有关java中什么是局部变量,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系
2023-06-14

从局部变量和全局变量开始全面解析Python中变量的作用域

理解全局变量和局部变量 1.定义的函数内部的变量名如果是第一次出现, 且在=符号前,那么就可以认为是被定义为局部变量。在这种情况下,不论全局变量中是否用到该变量名,函数中使用的都是局部变量。例如:num = 100def func():nu
2022-06-04

c++局部变量怎么声明

在C++中,局部变量声明的语法如下:数据类型 变量名;其中,数据类型表示变量的类型,可以是C++内置的数据类型,也可以是自定义的数据类型。变量名是用来标识变量的名称,可以根据需要自行命名。例如,声明一个整型的局部变量:int num;
c++局部变量怎么声明
2024-02-29

Java局部变量怎么定义

在Java中,局部变量是在方法、构造函数或语句块中声明的变量。局部变量只在声明它的方法、构造函数或语句块内可见。要定义一个Java局部变量,可以按照以下步骤进行:1. 在方法、构造函数或语句块的内部声明变量,并指定变量的类型。例如,要定义一
2023-09-05

mysql怎么定义局部变量

在MySQL中,可以使用SET语句来定义局部变量。局部变量可以在存储过程、函数、触发器等MySQL代码块中使用。下面是一个示例:DELIMITER //CREATE PROCEDURE example_procedure()BEGIN
mysql怎么定义局部变量
2024-04-09

java中全局变量和局部变量的区别是什么?

全局变量是编程术语中的一种,源自于变量之分。全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。局部变量(Local variables):在方法内部(包括main()方法)定义的变量是局部变量。所有局部变量
java中全局变量和局部变量的区别是什么?
2021-11-24

c#局部变量怎么给全局使用

在 c# 中,可以通过以下方法使局部变量作为全局变量使用:声明全局变量,使用 static 关键字。声明共享变量,使用 const 关键字。使用静态方法,该方法不依赖于实例。使用委托,将方法引用存储在变量中。使用事件,在对象上发生事件时发布
c#局部变量怎么给全局使用
2024-05-12

VB.NET中怎么设置共享变量作用域

今天就跟大家聊聊有关VB.NET中怎么设置共享变量作用域,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一个VB.NET共享变量可以使用Shared关键字来声明,这一点很象共享方法的声
2023-06-17

怎么理解python全局变量,局部变量和命名空间

本篇内容介绍了“怎么理解python全局变量,局部变量和命名空间”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python 使用全局和局部变
2023-06-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录