VB.net学习笔记(四)数据类型-值类型

前端之家收集整理的这篇文章主要介绍了VB.net学习笔记(四)数据类型-值类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
1、System.Object
System.Object是VB.net所有类的父类(基类)。
把对象转换成其父类的类型时,只能使用父类提供的方法
ToString方法可获得任意对象的字符串的表示。这个方法是默认实现方式是返回该对象的类型。




2、VB.net的类型:值类型、引用类型
VB.net主要有两个变量类型:值类型、引用类型
值类型:基本数据类型(除String),位于堆栈上,存储内存大小已知,故速度快。
引用类型:对象、String等,位于托管堆,大小由动态内存分配。其首地址放于栈上便于引用。


所有值类型在VB.net中都可称为结构类型


3、基本类型
Byte System.Byte
Short System.Int16
Integer System.Int32
Long System.Int64
Single System.Single
Double System.Double
Decimal System.Decimal
Date System.DateTime
Boolean System.Boolean
Char System.Char
String System.String
String是基本类型中唯一的引用类型




4、条件IF...Then...
可配合Else或ElseIf使用
因程序是顺序执行,为取得最佳性能,可将最常见条件放于条件最开始,这样为真时,下面就不用测试了。




5、比较运算符:= < <= >= >
另外还有And、Or进行逻辑叠加。
为了上面得取最佳性能,VB.net提供AndAlso,OrElse,这两个采用最短路径优化比较,只要比较前面一个条件就可取得逻辑值时,后面就不用比较了。
eg: if a>0 AndAlso b>0 then '如果第一条件为假,后面就不用测试
if c>0 OrElse d>0 then '如果第一条件为真,后面不就测试


另外还有对象的比较法:Is IsNot
eg: if mystring.GetType Is GetType(Integer) then '比较是否为int32

上面两者结束,对一个对象运算时,经常“分别”写出两个条件,首先判断不为空,再取某值。
有了上面可写在一个句中:
eg: if MyString IsNot Nothing AndAlso MyString.Length>5 then '不为空时再取长度




6、Select Case
技巧:同其它语句一样,输入Select后按Tab可自动跟踪语句,用Tab可切换不同输入位置
最后一个条件可用Case Else




7、Boolean
其值有True和False两个。为了适应以前VB6,也可转整形,True转为-1,False转为0。

为了适应不同系统的回车换行。VB.net中仍可用vbCRLF
标准写法Environment.NewLine




8、整形


为了兼容有不同的写法,请注意:

int16,short,UInt16,Ushort

Int32,Integer,UInteger,UInt32

Int64,UInt64,Long, ULong,UInt64

net标准用前面,是这了迁移到不同平台如64位系统时,后面有些写法是为了兼容前面的版本,以后也许Integer不是32位,可能在64位机上是64位。


(1)Short Int16

占两字节,但有时机器为了优化速度,也许占4字节,但其值是不会变的。

对应sql类型为 SmallInt类型



(2)Integer Int32

占4字节。为了解决迁移系统问题可使用用Int32。 如果为了脱离与底层的实现方式无关,可用Integer。

对应sql为 Integer类型


(3)Long Int64

占8字节。 对应sql类型为 BigInteger类型



(4)为了无符号类型,可在前面加上U,取值为非负,范围涨一倍。

范围扩大并不是用无符号数的主要原因,只是为了表征某些特征,比如UInt32和32位机上的指针地址有相同特征。





8、小数(浮点)


需要说明的是Currency已经停用。



(1)Single Double

单精度尾数6位,双精度尾数14,各表达的精度和范围不一样。

Dim a As Long=Long.MaxValue

赋值可以直接在定义后写。每种类型后面都可以用MaxValue和MinValue



(2)Decimal

Single,Double虽然表达的范围大,但它们的精度不够,增加Decimal,可达28位有效数值。

共占16字节128位,其中1位符号位,96位整数值,剩下的31位是比例因子,默认是以10为底,同时31位中还包括尾数中后置0.


(3)Char Byte

因VB.net是Unicode,Char故有2位,不仅英文,汉字亦可表达。

char是无符号,负数则是错误的,同时,char是不能直接与数值型进行转换的,须指明

由字符到数值: ASC() AscW()

由数值到字符:Chr() ChrW()

另外可在字符的后面加c表示是char型

Dim a as Char="d"c '因为Sting也是双引号,所以加C更能明确知道是Char

如果同一些Com交互时,char在VB.net并不能与之前的VB6中的char等同,须用Byte来代替



(4)DateTime

存储 IEEE 64 位(8 个字节)值,表示从 0001 年 1 月 1 日到 9999 年 12 月 31 日的日期以及从午夜 12:00:00 到晚上 11:59:59.9999999 的

时间。每个增量表示从公历第 1 年的 1 月 1 日开始经过的 100 纳秒时间。最大值表示 10000 年 1 月 1 日开始前的 100 纳秒。

由此可以看到并不是以前VB6的Double类型。为了和VB6兼容,用ToOADate和FromOADate来支持

Now()继续用,添加 UtcNow() (即格林威治标准时)

原文链接:https://www.f2er.com/vb/258693.html

猜你在找的VB相关文章