VB.Net - 变量

一个变量只是一个给我们的程序可以操作的存储区域的名字。 VB.Net中的每个变量都有一个特定的类型,它决定了变量内存的大小和布局; 可以存储在该存储器内的值的范围; 以及可以应用于该变量的一组操作。

我们已经讨论了各种数据类型。 VB.Net中提供的基本值类型可以分为:

类型示例
Integral typesSByte, Byte, Short, UShort, Integer, UInteger, Long, ULong and Char
Floating point typesSingle and Double
Decimal typesDecimal
Boolean typesTrue or False values, as assigned
Date typesDate

VB.Net还允许定义其他值类型的变量,如枚举和类的变量的引用类型。 我们将在后续章节讨论日期类型和类。

VB.Net中的变量声明

Dim语句用于一个或多个变量的变量声明和存vb.net教程储分配。 Dim语句用于模块,类,结构,过程或块级别。

VB.Net中变量声明的语法是:

[ < attributelist> ] [ accessmodifier ] [[ Shared ] [ Shadows ] | [ Static ]]
[ ReadOnly ] Dim [ WithEvents ] variablelist

1、attributelist是适用于变量的属性列表。 可选的。

2、accessmodifier定义变量的访问级别,它具有值 - Public,Protected,Friend,Protected Friend和Private。 可选的。

3、Shared共享声明一个共享变量,它不与类或结构的任何特定实例相关联,而是可用于类或结构的所有实例。 可选的。

4、Shadows阴影表示变量在基类中重新声明和隐藏一个同名的元素或一组重载的元素。 可选的。

5、Static表示变量将保留其值,即使在声明它的过程终止之后。 可选的。

6、ReadOnly表示变量可以读取,但不能写入。 可选的。

7、WithEvents指定该变量用于响应分配给变量的实例引发的事件。 可选的。

8、Variablelist提供了声明的变量列表。

变量列表中的每个变量具有以下语法和部分:

variablename[ ( [ boundslist ] ) ] [ As [ New ] datatype ] [ = initializer ]
1、variablename:是变量的名称

2、boundslist:可选。 它提供了数组变量的每个维度的边界列表。

3、New:可选。 当Dim语句运行时,它创建一个类的新实例。

4、datatype:如果Option Strict为On,则为必需。 它指定变量的数据类型。

5、initializer:如果未指定New,则为可选。 创建时评估并分配给变量的表达式。

一些有效的变量声明及其定义如下所示:

Dim StudentID As Integer
Dim StudentName As String
Dim Salary As Double
Dim count1, count2 As Integer
Dim status As Boolean
Dim exitButton As New System.Windows.Forms.Button
Dim lastTime, nextTime As Date

VB.Net中的变量初始化
变量被初始化(赋值)一个等号,然后是一个常量表达式。 初始化的一般形式是:

variable_name = value;

例如,

Dim pi As Double
pi = 3.14159

您可以在声明时初始化变量,如下所示:

Dim StudentID As Integer = 100
Dim StudentName As String = “Bill Smith”

示例
尝试下面的例子,它使用各种类型的变量:

Module variablesNdataypes
Sub Main()
Dim a As Short
Dim b As Integer
Dim c As Double
a = 10
b = 20
c = a + b
Console.WriteLine(“a = {0}, b = {1}, c = {2}”, a, b, c)
Console.ReadLine()
End Sub
End Module

当上述代码被编译和执行时,它产生了以下结果:

a = 10, b = 20, c = 30

接受来自用户的值
System命名空间中的控制台类提供了一个函数ReadLine,用于接受来自用户的输入并将其存储到变量中。 例如,

Dim message As String
message = Console.ReadLine

下面的例子说明:

Module variablesNdataypes
Sub Main()
Dim message As String
Console.Write("Enter message: ")
message = Console.ReadLine
Console.WriteLine()
Console.WriteLine(“Your Message: {0}”, message)
Console.ReadLine()
End Sub
End Module

当上述代码被编译和执行时,它产生了以下结果(假设用户输入的Hello World):

Enter message: Hello World
Your Message: Hello World

Lvalues和Rvalues
有两种表达式:

lvalue:作为左值的表达式可能出现在赋值的左侧或右侧。
rvalue:作为右值的表达式可能出现在作业的右侧但不是左侧。

变量是左值,因此可能出现在作业的左侧。 数字文字是右值,因此可能不会分配,不能出现在左侧。 以下是有效的语句:

Dim g As Integer = 20

但以下并不是有效的语句,并会生成编译时的错误:

20 = g

VB.Net常用语法 一:Try………Catch………finally………end try 捕获错误 把一个可能出错的语句放在try后面,如果出错,执行catch语句, catch可以有多个,第一个catch不能捕获的错误,将被下一个catch语句 所捕获。在所有的处理结束后,执行finally语句。 在一个try………end try 过程中可以使用catch与finally两个中的一 个,或者两个一起用, 二:Protected, private, Public 封装控制 这三个关键字一般放在语句最前面,而会置于overloads与Overrides的 后面 public是工程级别外部访问 protected是本族级别以下内部访问 private是不提供非本地访问 三:ByVal sender As Object, ByVal e As System.EventArgs   这是最赏用事件传递参数。被封装于两个对象内, 如果你要传递相应的参数,要在这两个对象里面找,如当前鼠标位置为 e.X e.Y。在VB.Net中有些事件是要自已动手写的, 如窗体鼠标过程,一般加上这个参数在后面的括号内就解决了。 四:重载语法Overloads 如:class class1 public strtem as string overloads public sub subx()重载subx(A状态) strtem=”3” end sub overloads public sub subx(x as string) 重载subx(B状 态) strtem=x end sub end class 如果你如果调用subx()中间没有参数,则VB自动调用重载subx(A状 态), overloads public sub subx()重载subx(A状态) strtem=”3” end sub 结果就是strtem=”3” 如果你这样调用,subx(“这是一个不同的结果”),则VB自动调用重 载subx(B状态) overloads public sub subx(x as string) 重载subx(B状 态) strtem=x end sub 结果就是 strtem=“这是一个不同的结果” 您可以在函数中调用,包括在API中(当然VB.Net不再使用winAPI). 甚至一些至关紧要的过程也不例外:如new过程(此方法王国荣文章中 有介绍) 如: class class1 Overloads Public Sub New() 。。。。。。 。。。。。。 end sub Overloads Public Sub New(s as string) 。。。。。。 。。。。。。 end sub end class 同样有两种调用的方法,如dim as as class1=new class 调用前面 一个无参数的new过程, 而dim asb as class1=new class(“string”)调用第二个new 过程. 切记,如果一个过程或一个函数只有一种状态,不能这样运用。如果您试 图使用overloads关键字,则VB.Net会出现错误的提示要求你移去 overloads 五:Overrides改写 如常见的dispose过程: Overrides Public Sub Dispose() MyBase.Dispose components.Dispose End Sub Overrides表示完全的改写父类提供的过程与函数 不过要记住使用改写的前提是在父类的同一过程或函数的前面也使用了 overrides关键字 六:mybase.new 与mybase.dispose ublic Sub New() MyBase.New Form1 = Me InitializeComponent End Sub Overrides Public Sub Dispose() ' MyBase.Dispose components.Dispose End Sub 这两个过程是任何一个新建工程都会有的,mybase.new是调用当前类的 父类的new过程,同样你也可以加上参数配合父类的重载New过程。如: Overloads Public Sub New () MyBase.New() End Sub Overloads Public Sub New (string) MyBase.New(string) End Sub 七:Structure构造 自定义类型,如: Structure Type1 Dim x as y Dim a as b 。。。。。。。 end structure 这个取代VB6中的使用type………end type方式自定义类型的方法。 八:return返回值 function functionname() return X。。。。。。 end funtion 他的作用与下面一样: function functionname() functionname = X。。。。。。 end funtion
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值