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() (即格林威治标准时) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Error:(37) Error parsing XML: not well-formed (invalid
- React Native入门(八)之网络请求Fetch
- C#实现的二维数组排序算法示例
- ajax: jquery get request
- postgresql – Postgres pgpass windows – 无法正常工作
- Oracle查询昨天09点到今天09点的数据
- 详解Lua中的表的概念及其相关操作方法
- 麻雀虽小,五脏俱全:用DOJO写一个最简单的控件
- c# – DataGridView选定的单元格默认颜色
- [Swift]LeetCode330. 按要求补齐数组 | Patching Array