VB.Net学习笔记(变量生存期和赋值)

笔记|变量

变量有生存周期
这一点程序员们都了解,在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

关于委托语句的关键字AddressOf在后期委托和事件中讲详细描述。

时间: 2024-09-10 23:45:27

VB.Net学习笔记(变量生存期和赋值)的相关文章

iOS开发:学习笔记—变量、属性、方法、实现

  1.代码说明: Person.h 开发:学习笔记-变量.属性.方法.实现-"> Person.h #import @interface Person : NSObject { int age,sex;//变量的定义 int height,width; } @property int age,sex;//属性的定义 @property char height; //-(void) setAge; -(int) setAge1 :(int)a; -(int) setWH :(int)w :

Shell学习笔记---变量的赋值与替换

声明:本文仅作学习研究使用,多数语句都是为了介绍语法而构造的.  建议读者先将以下命令分别执行后再整合成脚本,这样会对变量的整个赋值过程理解更透彻.  #!/bin/bash #Filename:prameter_practise1 #Datetime:2010_12_24 08:25 #Discription:Practise of using prameters a=375 hello=$a  #------------------------------------------------

Erlang语法学习笔记:变量、原子、元组、列表、字符串_Erlang

一:变量 1. erlang中的变量[单一赋值],意味着变量只能赋值一次. 2.变量必须[大写字母]开头. 二:原子    原子相当于c++中的枚举类型,但erlang中的原子的值是其本身.    原子是一串以[小写字母]开头的,但如果用单引号引起来,原子的命名就无所谓了,很多花样就出来了.如果首字符是正轨的小写字母,则原子的值是引号内的内容,否则输出的值包含单引号. 三:元组(tuple) 有很多项组成一个单一的实体,类似于c++中的结构体之类的,在erlang中要用元组表示: 将若干个以[逗

Shell学习笔记---变量赋值与运算(原创)

声明:本文仅作学习研究使用,多数语句都是为了介绍语法而构造的.  #!/bin/bash #Filename:prameter_parctise2 #Datetime:2010_12_24 09:24 #Discription:Practise of evaluating parameters # 等号赋值a=879echo "The value of \"a\" is $a."  # 使用'let'赋值let a=16+5 echo "The value

VB.Net学习笔记(基础概念和语法)

笔记|概念|语法 从基础概念和语法开始 学一门语言,特别是现在都是可视化的开发了,但我建议还是不要急着先去拖拉几个控件,而是踏踏实实的先了解一下这门语言的概念.语法和规范. VB.Net虽然和以前的VB6在语法上非常的接近,但由于现在的VB.Net是全新的面向对象的语言,所以两者还是有些区别的. 正如大家所知道的,现在VB.Net已经全面支持各种面向对象的特性了,并且还有了一些其他.Net环境所需要的特性:继承.重载.重写属性和方法.实现构造函数和析构函数.接口.委托.异常.命名空间.程序集.特

VB.Net学习笔记(条件语句)

笔记|条件|语句 条件语句VB.Net中条件语句依然是If Then语句和Selecr Case语句. If Then语句If Then语句比较简单,和原来一样的规则. If条件语句举例 Public Class TestA Public Sub New() Dim b As Boolean = True If b = True Then '处理 Else '处理 End If End Sub End Class Select CaseSelect Case语句用于条件的多个结果的分支判断执行.

VB.Net学习笔记(前言)

笔记 微软的.Net开发平台庞大且复杂,对于一般的开发人员来讲面临最现实的要求就是在短时间内掌握VB.Net的开发技巧,并希望找到一个捷径.虽然学习一门语言应该没有什么特别的捷径可以走(本人也不赞成所谓的21天精通***),但了解他人的学习方式和快速把握语言的重点还是有必要的. 我大约从2000年底开始接触.Net,几年来一直致力于.Net的开发和培训,或多或少也有了一些心得,现在写来为准备加入.Net战线的各位做一点贡献.

VB.Net学习笔记(数组)

笔记|数组 数组 在VB.Net中数组有了很大的改变.首先象在简单赋值章节描述的:数组的索引编号总是从零开始:并且数组的元素类型是强类型,即数组中所包含的每一个元素都必须是相同的类型. Array对象在VB.Net中使用Dim iArr(5) As Int32这种语法表示的数组实际上是声明了一个Array对象的实例.Array对象是位于System命名空间中.这个对象提供创建.操作.搜索和排序数组的方法,因而在公共语言运行库中用作所有数组的基类.不过虽然Array 类是支持数组的语言实现的基类.

VB.Net学习笔记(循环语句)

笔记|循环|语句 循环语句 VB.Net中的循环语句分为:Do While Loop.For Next.For Each三种. Do While LoopDo While Loop有三种形式,这系列的循环是用于预先不知道循环的上限时使用的.在使用Do While Loop语句时要注意,因为它们是不确定循环次数,所以要小心不要造成死循环. Do While Loop举例 Public Class TestA Public Sub New() Dim i As Int32 i = 1 Do Whil