在VB.Net中增加了一个修饰Shared。Shared 关键字指示一个或多个被声明的编程元素将被共享。要点是:共享元素不关联于某类或结构的特定实例。需要通过使用类名或结构名称或者类或结构的特定实例的变量名称限定共享元素来访问它们。简单的描述就是Shared变量是为类型本身服务而不是为特定对象服务的。

Shared举例

Public Class TestA

Public Shared i As Int32 = 10

End Class

Public Class TestB

Inherits TestA '继承TestA

Public Sub New()

TestA.i = 100 '使用类型的名字进行访问Shared变量

End Sub

End Class

要注意的是,在VB.Net中Shared变量与类型和实例的关系在语法上要求似乎并不特别严格,程序员可以使用类型的实例来访问并修改Shared变量,但在C#中要求就很严谨了。

赋值语句
在VB.Net中赋值语句分为:简单赋值语句、复合赋值语句、委托赋值语句、Mid赋值语句。

简单赋值语句
简单赋值语句和以前的VB赋值语句基本上没有太大的区别,只是现在VB.Net允许对变量声明后就立即赋值了(在前面可访问性举例可以看到示例)。我们需要关注的是数组的声明和赋值方法。

在VB.Net中你可以在声明数组时同时描述数组的纬度和上限,且每一个数组的纬度的下限都是0,不可以改变。但可以通过将数组的上限指定为 -1 来指定“零长度数组”。这种数组不包含任何元素。

如果不显示的描述数组的长度,你可以在声明数组的同时立即赋值。

数组的声明和赋值举例

Public Class TestA

Dim iArr() As Int32

Dim bArr(5) As Boolean '5是指bArr下标的上限,即可以有6个元素

Dim lArr() As Long = New Long(3) {100, 200, 300, 400}

Dim cArr() As String = New String() {"A", "B", "C"}

Dim dArr(-1) As Double

End Class

复合赋值
现在VB.Net开始支持复合赋值语句。与完全展开的表达式不同,复合赋值语句左侧的变量仅计算一次。这意味着在运行时,变量表达式先于赋值语句右侧的表达式计算。

复合赋值举例

Public Class TestA

Public Sub New()

Dim i As Int32

i += 10

End Sub

End Class

Mid赋值
Mid赋值实际上是字符串的处理赋值过程。通过以下的举例可以了解Mid的赋值方式。

Mid举例

Public Class TestA

Public Sub New()

Dim TmpStr As String

TmpStr = "Hello VB.Net" ' Hello VB.Net

Mid(TmpStr, 7, 2) = "c#" ' Hello c#.Net

Mid(TmpStr, 7) = "VB6" ' Hello VB6Net

Mid(TmpStr, 7) = "VB6 to VB.Net" ' Hello VB6 to

Mid(TmpStr, 7, 3) = "VB6 to VB.Net" 'Hello VB6 to

End Sub

End Class

转载于:https://www.cnblogs.com/opper/archive/2009/10/28/1591516.html

VB.Net中关于数组赋值相关推荐

  1. VB6中给数组赋值的限制

    (由于用得不是很多,所以干脆记下来免得下次用到时又忘了.) MSDN有个错误是"不能给数组赋值",即不能将整个数组指定给另一个数组. 而实际上有时行,有时又不行,刚刚写代码时又遇到 ...

  2. JavaScript中字符串数组赋值失败,不是每个字符串,却是字符。

    我的处女作<Canvas系列教程>在我的Github上正在连载更新,希望能得到您的关注和支持,让我有更多的动力进行创作. 教程介绍.教程目录等能在README里查阅. 传送门:https: ...

  3. java 数组赋值_java中为数组赋值的方法

    java中为数组赋值的方法 发布时间:2020-06-25 14:31:36 来源:亿速云 阅读:184 作者:Leah 这期内容当中小编将会给大家带来有关java中为数组赋值的方法,文章内容丰富且以 ...

  4. python定义数组并赋值_python中的数组赋值与拷贝的区别详解

    具体的注解我已经写在了程序里面:通俗的解释了python里面的浅拷贝与深拷贝的不同,请看程序. # -*- coding: utf-8 -*- import numpy as np import co ...

  5. struct 结构体中字符串数组赋值的问题

    #include <stdio.h> #include <stdlib.h> #include <string.h>typedef struct STUDENT { ...

  6. Java中对数组赋值

    正常我们定义一个数组有很多种方式,这里只列出一种. int[] a = new int[3]; 若要给a数组赋值{1, 2, 3},当然一个一个元素进行赋值肯定是可以的但是看起来比较臃肿. 此时想到了 ...

  7. C++对类(或者结构体)中字符数组赋值时,出现表达式必须是可修改的左值的问题

    最近自己遇到了这类问题,在csdn上找到了很多大神给的解答,非常到位 特别感谢这位: https://blog.csdn.net/JQ_AK47/article/details/53169799 问题 ...

  8. C语言 如何给结构体中的数组赋值

    说明: 在建立socke通信的t过程中,我想将所有变量都封装在一个结构体中,但是其中 IP地址需要数组保存,无法直接赋值: 偶然间看到了处理方式 示例 #include <stdio.h> ...

  9. 在java中给数组赋值,java中给数组赋值的方法

    1.数组操作中,可以使用等于(=)赋值 注意:此时新数组只是指向原数组的存储空间,并没有重新申请新的空间. 实例:public class ArrayTest{ public static void ...

最新文章

  1. C++ 智能指针详解
  2. 使用非侵入性脑机接口和计算机视觉引导对机器人手臂进行共享控制
  3. 使用OpenCV进行人脸识别的三种方法
  4. php mysql 简单聊天室_聊天室phpmysql(一)
  5. 机器学习-学习资源整理
  6. mqtt linux 编译,MQTT客户端代码X64位Ubuntu环境编译+测试实践小结
  7. oracle分组_MySQL分组取TOP,实现Oracle的ROW_NUMBER函数的功能
  8. 1016 部分A+B (15分)
  9. mysql 相同字段相减_mysql datetime 类型字段相减
  10. [INS-30131] 执行安装程序验证所需的初始设置失败。
  11. mapreduce工作流程_我要进大厂之大数据MapReduce知识点(2)
  12. Linux第三方软件仓库
  13. C#泛型中的抗变和协变
  14. 用python实现12306登录、查票(小白都一看就懂的)
  15. 初识:神经网络(Neural Networks)
  16. “金银花露”是夏令保健清凉饮料 养生专属!
  17. 我在京东的第417天:陷入了情绪的泥沼
  18. 自锁电路设计1.5V电压起
  19. 【自我管理】追求卓越从改变自己做起
  20. 《PPT高手之道:六步变身职场幻灯派》一1.5 第一步谋篇之实战

热门文章

  1. CSS书写技巧(转)
  2. Android中使用ViewStub提高布局性能
  3. MySQL数据库服务器的架设
  4. ngnix服务器搭建
  5. CoreSight介绍篇
  6. Cocos2d-x项目开发时在Eclipse中配置环境编译C++
  7. 学习IOS开问题篇--视图的模型控件属性写在私有分类中的原因
  8. OpenCv 005---图像像素的算术操作
  9. 开源自己写的Library到github,让别人或自己的项目依赖
  10. DRCNN超分辨重建2016年