`
salute
  • 浏览: 55102 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

vb.net中类型转换函数

阅读更多
一、函数名确定它返回的值的数据类型,如下表所示。
函数名 返回数据类型 expression 参数范围

CBool


Boolean 数据类型 (Visual Basic)


任何有效的 Char、String 或数值表达式。

CByte


Byte 数据类型 (Visual Basic)


0 到 255(无符号);舍入小数部分。1

CChar


Char 数据类型 (Visual Basic)


任何有效的 Char 或 String 表达式;只转换 String 的第一个字符;值可以为 0 到 65535(无符号)。

CDate


Date 数据类型 (Visual Basic)


任何有效的日期和时间表示法。

CDbl


Double 数据类型 (Visual Basic)


负值取值范围为 -1.79769313486231570E+308 到 -4.94065645841246544E-324;正值取值范围为 4.94065645841246544E-324 到 1.79769313486231570E+308。

CDec


Decimal 数据类型 (Visual Basic)


对于零变比数值,即无小数位数值,为 +/-79,228,162,514,264,337,593,543,950,335。对于具有 28 位小数位的数字,范围是 
+/-7.9228162514264337593543950335。最小的可用非零数是 0.0000000000000000000000000001 (+/-1E-28)。

CInt


Integer 数据类型 (Visual Basic)


-2,147,483,648 到 2,147,483,647;舍入小数部分。1

CLng


Long 数据类型 (Visual Basic)


-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807;舍入小数部分。1

CObj


Object 数据类型


任何有效的表达式。

CSByte


SByte 数据类型 (Visual Basic)


-128 到 127;舍入小数部分。1

CShort


Short 数据类型 (Visual Basic)


-32,768 到 32,767;舍入小数部分。1

CSng


Single 数据类型 (Visual Basic)


负值的取值范围为 -3.402823E+38 到 -1.401298E-45;正值的取值范围为 1.401298E-45 到 3.402823E+38。

CStr


String 数据类型 (Visual Basic)


CStr 的返回值取决于 expression 参数。请参见返回 CStr 函数的值。

CUInt


UInteger 数据类型


0 到 4,294,967,295(无符号);舍入小数部分。1

CULng


ULong 数据类型 (Visual Basic)


0 到 18,446,744,073,709,551,615(无符号);舍入小数部分。1

CUShort


UShort 数据类型 (Visual Basic)


0 到 65,535(无符号);舍入小数部分。1

1 小数部分可能要进行称为“四舍六入五成双”的特殊类型舍入。有关更多信息,请参见“备注”。


二、Convert
备注

通常,在 Convert 类或在独立类型结构或类中,应优先使用 Visual Basic 类型转换函数,其次使用 .NET Framework 方法(例如 ToString())。Visual Basic 函数设计用于优化与 Visual Basic 代码之间的交互,并且这些函数使源代码更简短、更易阅读。另外,.NET Framework 转换方法产生的结果不一定与 Visual Basic 函数产生的结果相同,例如当将 Boolean 转换为 Integer 的时候。有关更多信息,请参见数据类型的疑难解答。
行为

    *

      强制转换。通常,可以使用数据类型转换函数将运算结果强制转换为某一特定数据类型而非默认数据类型。例如,在通常发生单精度、双精度或整型运算的情况下,使用 CDec 强制执行小数运算。
    *

      转换失败。如果传递给函数的 expression 超出要转换成的数据类型的范围,将发生 OverflowException。
    *

      小数部分。将一个非整数值转换为整型时,整数转换函数(CByte、CInt、CLng、CSByte、CShort、CUInt、CULng 和 CUShort)将移除小数部分,并将该值舍入为最接近的整数。

      如果小数部分正好是 0.5,整数转换函数将其舍入为最接近的偶数整数。例如,0.5 舍入为 0,1.5 和 2.5 都舍入为 2。这有时称为“四舍六入五成双”,其目的是弥补在将许多这样的数字相加时可能会累积的偏量。

      CInt 和 CLng 与 Int、Fix 函数 (Visual Basic) 不同,后者截断而不是舍入一个数字的小数部分。此外,Fix 和 Int 总是返回与传入的数据类型相同的值。
    *

      日期/时间转换。使用 IsDate 函数 (Visual Basic) 可确定一个值是否可转换为日期和时间。CDate 能够识别日期文本和时间文本,但不能识别数值。若要将 Visual Basic 6.0 Date 值转换为 Visual Basic 2005 Date 值,可以使用 System.DateTime.FromOADate(System.Double) 方法。
    *

      中性日期/时间值。 Date 数据类型 (Visual Basic) 始终包含日期和时间信息。为进行类型转换,Visual Basic 将 1/1/0001(公元 1 年 1 月 1 日)作为日期的“中性值”,将 00:00:00(午夜)作为时间的中性值。如果将 Date 值转换为字符串,CStr 的结果字符串中将不包含中性值。例如,如果将 #January 1, 0001 9:30:00# 转换为字符串,结果为“9:30:00 AM”;日期信息被删除了。但是,日期信息仍然保留在原来的 Date 值中,并可以使用 DatePart 函数 (Visual Basic) 等函数进行恢复。
    *

      区域差异。涉及字符串的类型转换函数根据应用程序的当前区域设置进行转换。例如,CDate 依据系统的区域设置来识别日期的格式。必须以正确的顺序为区域设置提供日、月、年数据,否则可能无法正确解释日期。系统无法识别包含星期几的字符串(如“Wednesday”)的长日期格式。

      如果需要以区域设置指定的格式之外的格式在值的字符串表示形式之间转换,则不能使用 Visual Basic 类型转换函数。如果进行转换,请使用该值类型的 ToString(IFormatProvider) 方法和 Parse(String, IFormatProvider) 方法。例如,将字符串转换为 Double 时,使用 System.Double.Parse(System.String,System.IFormatProvider),将 Double 类型的值转换为字符串时,使用 System.Double.ToString(System.IFormatProvider)。

三、CType 函数

CType 函数采用第二个参数 typename,并且将 expression 强制转换为 typename,其中 typename 可以是存在有效转换的任何数据类型、结构、类或接口。

有关 CType 与其他类型转换关键字的比较,请参见 DirectCast 和 TryCast。
CBool 示例

下面的示例使用 CBool 函数将表达式转换为 Boolean 值。如果表达式的计算结果为非零值,CBool 将返回 True;否则返回 False。

四、
Val 函数

以适当类型的数值形式返回包含于字符串内的数字。

Public Overloads Function Val(ByVal InputStr As String) As Double
' -or-
Public Overloads Function Val(ByVal Expression As Object) As Double
' -or-
Public Overloads Function Val(ByVal Expression As Char) As Integer

参数

Expression, InputStr

    必选。任何有效的 String 表达式、Object 变量或 Char 值。如果 Expression 是 Object 类型,它的值必须可以转换为 String,否则,将出现 ArgumentException 错误。

异常
异常类型 错误号 条件

OverflowException


6


InputStr 太大。

InvalidCastException


13


数字格式错误。

ArgumentException


438


Object 类型表达式不能转换为字符串。

如果正在升级使用非结构化错误处理方式的 Visual Basic 6.0 应用程序,请参见“错误号”一列。(您可以根据 Number 属性(Err 对象)比较错误号。)然而,如果可能,应当考虑用 Visual Basic 的结构化异常处理概述替换这种错误控制。
备注

Val 函数在发现第一个不能将其识别为数字的字符时,将停止读入字符串。那些通常被认为是数值的一部分的符号和字符,例如美元符号与逗号,都不能被识别。但是该函数可以识别基数前缀 &O(八进制)和 &H(十六进制)。空白、制表符和换行符都会从参数中排除。

下面的调用返回值 1615198。

Val(" 1615 198th Street N.E.")

下面的调用返回十进制值 -1。

Val("&HFFFF")

Note注意

Val 函数只将句点 (.) 识别为有效的小数点分隔符。当使用不同的小数点分隔符时(如在国际应用程序中),则应使用 CDbl 或 CInt 将字符串转换为数字。若要将特定区域中的数字的字符串表示形式转换为数值,请使用 Numeric 类型的 Parse(String, IFormatProvider) 方法。例如,将字符串转换为 Double 时,使用 System.Double.Parse(System.String,System.IFormatProvider)。

五、

在Visual Basic 2005中将加入一个新的运算符——TryCast,相当于C#的as运算符。我一直希望VB有这样一个运算符。VB目前的类型转换运算符主要有 CType和DirectCast。他们的用法几乎一样。我详细比较了一下这两个运算符,得出以下结论:

1、在转换成引用类型时,两者没有什么区别,都是直接调用castclass指令,除非重载了类型转换运算符CType。DirectCast运算符是不能重载的。

2、转换成值类型时,CType会调用VB指定的类型转换函数(如果有的话),比如将String转换为Int32时,就会自动调用 VisualBasic.CompilerServices.IntegerType.FromString,而将Object转换为Int32则会调用 FromObject。其他数值类型转换为Int32时,CType也会调用类型本身的转换方法实施转换。DirectCast运算符则很简单,直接将对象拆箱成所需类型。

所以在用于值类型时,CType没有DirectCast快速但可以支持更多的转换。在C#中,类型转换则为(type)运算符和as运算符。 (type)运算符的工作方式与VB的DirectCast很相似,也是直接拆箱或castclass的,但是如果遇到支持的类型转换(如long到 int),(type)运算符也会调用相应的转换方法,但不支持从String到int的转换。C#另一个运算符as则更加智能,它只要判断对象的运行实例能否转成目标类型,然后就可以省略castclass指令,直接按已知类型进行操作,而且编译器还可以自动对as进行优化,比如节省一个对象引用等。所以在将Object转换成所需的类型时,as是最佳选择。

由于as有很多优点,Visual Basic 2005将这一特性吸收了过来,用TryCast运算符就可以获得和as一样的效果,而且语法与DirectCast或CType一样。
[color=darkred][/color]
分享到:
评论

相关推荐

    平时整理的比较实用的VB.NET各种常用函数

    平时整理的比较实用的VB.NET各种常用函数,包括 转换函数,日期和时间函数, 字符串函数,随机函数等

    vb.net常用函数.txt

    vb.net常用函数 Abs(number) 取得数值的绝对值。 Asc(String) 取得字符串表达式的第一个字符ASCII 码。 Atn(number) 取得一个角度的反正切值。 CallByName (object, procname, usecalltype,[args()]) 执行一个对象的...

    vb.net基本入门学习资料

    11.vb.net类型转换函数 第三部分 visual basic.net的运算 程序设计时经常用到的有6种运算:算术运算(Arithmetic)、赋值运算(Assignment)、二进制运算(Bitwise)、比较运算(Comparison)、连接运算...

    vb.net基本入门学习资料.doc

    11.vb.net类型转换函数 第三部分 visual basic.net的运算 程序设计时经常用到的有6种运算:算术运算(Arithmetic)、赋值运算(Assignment)、二进制运算(Bitwise)、比较运算(Comparison)、连接运算...

    VB.NET取汉字拼音首字母DEMO,支持多音字

    因为VB.NET不支持指针,所以VB.NET这个汉字转拼音功能只能做成PY.dll这个文件来调用。自己使用就项目>添加引用>添加PY.dll即可,汉字转拼音的转换函数调用方法如DEMO中的示例。。WIN10+VS2015亲测可用。

    Visual.Basic.NET程序设计案例教程

    3.6.4 类型转换函数 3.6.5 数据的输入函数(InputBox函数) 3.6.6 数据的输出函数(MsgBox函数) 3.7 VB.NET的编码规则 3.8 综合实训 习题3 第4章 VB.NET基本控制结构 4.1 顺序结构 4.2 选择结构 4.2.1 行If语句 4.2.2 ...

    VB编写的Code128码转换实例

    用VB编写的Code128码转换实例: 可转换Code128A、Code128B、Code128C; 也可自动识别最优Code128Auto 代码可封装成DLL

    手机短信的发送接收原理与代码 VB .NET

    手机短信的发送接收原理与代码 中文转换成Unicode码函数 因为手机短消息的发送是以PDU串的形式发送出去的,中文字符以Unicode码来...这个函数主要应用到VB自带的一个格式转换函数:ChrW()将中文转换为Unicode码。

    VB 字符和ASCII码间的相互转换

    VB 字符和ASCII码间的相互转换 VB 字符和ASCII码间的相互转换

    利用CopyMemory实现IEEE754与十进制float之间的转换

    对于vb vb.net c#或者 c来说,单精度浮点数在内存中占用4个字节,本身就是以IEEE754的标准格式来存储的。所以当我们需要用到的时候,其实并不需要自己去转换,直接以内存指针的方式,将内存中的数据以我们需要的方式...

    VB字符串转换成函数表达式实例

    内容索引:VB源码,字符处理,字符串,表达式 VB将字符串转换成函数表达式,支持很多种函数类别,支持 sin、tan、log 等函数,估计对大家比较有用处,用法也很简单,直接在输入框输入你想要的函数结果,选择表达式,它...

    兼容C# VB.net的TripleDES加解密的java源码

    坑3:Java的字符串转字节数组,getBytes函数无参时默认为utf-8,汉字占三字节,英文字符占1字节;若指定参数为unicode,则转换后前二字节为-2,-1,后两字节为一个字符(高位在前,低位在后);而DotNET转换后,无前...

    时间转换函数demo

    时间转换demo,能计算用户浏览器时区,时区时间转换,计算昨天、今天、前天

    颜色值转换(RGB与VB十六进制)

    颜色值转换(RGB与VB十六进制),在程序开发中经常要用的设置界面颜色,但是用函数非常麻烦,而且增加代码量,所以就开发了这个可以转换的工具

    VB和c#语法对照

    VB.NET类型转换: * 使用CType函数或DirectCast函数进行类型转换。 C#类型转换: * 使用转换运算符()或Convert类进行类型转换。 五、类型信息 VB.NET类型信息: * 使用GetType函数或TypeName函数获取类型...

    asp.net知识库

    实现C#和VB.net之间的相互转换 深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象中的私有变量 关于反射中创建类型实例的两种方法 ASP...

    基于COM的VB与Matlab混合编程

    的MatlabCOMBullder模块为转换工具,将Matlab的M函数文件转换为COM组件后应用在vB程序中.集成后的软件不 仅能够充分发挥两种语言各自的优点,还可以完全脱离Matlab的运行环境。提供的实现过程和编程实例均说明此方法...

    VB 超强的API浏览器 (源代码)

    对于Any类型的转换,VB.NET/C# 中不支持Any类型。如果你要把VB6式的API声明添加为VB.NET/C#支持的声明方式, 请使用特定的类型。在本软件中对于有Any类型的函数添加时会提示你选择一种类型。在 Visual Basic 6.0 中,...

    将Matlab函数转换为VB可用的DLL

    Matlab是MathWorks公司开发的一种工程计算语言。用这个交互系统可以解决很...以及在VB中调用这一类DLL两个问题做了一些探讨。文中,我们是基于Mat-lab5.0、VC5.0、VB5.0、 Matcom4.0或相应的更高版本的软件进行讨论的。

    VB6.0 UTF-8转换GB2312函数

    VB6.0 UTF-8转换GB2312函数本人收集了一些技巧供大家参考,希望斑竹能多放一些时间。按字母或数字顺序排列列表框中的列表项. 将以下代码加入到你的程序中.

Global site tag (gtag.js) - Google Analytics