重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Dim txt As TextBox = CType(ctrl, TextBox)
按需制作可以根据自己的需求进行定制,成都网站制作、成都做网站构思过程中功能建设理应排到主要部位公司成都网站制作、成都做网站的运用实际效果公司网站制作网站建立与制做的实际意义
当然也可以用directcast方法,实现的功能一样,trycast可以避免类型不符的时候不报错的功能。
完全不相的类型之间则是不能转换的,比如你的ctrl里实际上是一个button,那么无论如何都不可能给你转换成textbox,用上面的方法的话会抛出一个异常。
这属于装箱拆箱。我举个例子你就明白了:
Dim x As Integer = 5
Dim o As Object = x '装箱
Dim y As Integer = CType(o, Integer) '拆箱(在Option Strict Off的情况下,直接用o给y赋值,会发生自动转换,也就是说在这种情况下,你不必显式调用CType函数)
另外:VB.NET支持后期绑定,所以你也可以不进行拆箱,直接在Object类型下就可以调用它的属性和方法
比如,下面的语句在Option Strict Off是是合法的
Dim s As String = 886
Dim i As Integer = "53"
Dim f As Object = New Form()
f.Show() '注意,f是Object类型的
总之,VB.NET的语法要比C#灵活得多
是的,因为这是一个强制转换,但你没有定义转换的方法。 如果想要 D d6 = (D) b1; 这句话能够正常运行,则需要在Class D中重载如下运算: internal class D:B { public static explicit operator D(B b) //这是一个显式转换 { //具体转换方法 }
VB使用类型转换函数来实现强制将一个表达式转换成某种特定数据类型。
类型转换函数,每个函数都可以强制将一个表达式转换成某种特定数据类型。
语法
CBool(expression)
CByte(expression)
CCur(expression)
CDate(expression)
CDbl(expression)
CDec(expression)
CInt(expression)
CLng(expression)
CSng(expression)
CStr(expression)
CVar(expression)
CStr(expression)
必要的 expression 参数可以是任何字符串表达式或数值表达式。
CBool 函数示例
本示例使用 CBool 函数来将一表达式转成 Boolean
值。如果表达式的结果为非零的值,CBool 返回 True;否则返回 False。
Dim A, B, Check
A = 5: B = 5 ' 设置变量初值。
Check = CBool(A = B) ' Check 的值为 True。
A = 0 ' 定义变量。
Check = CBool(A) ' Check 的值为 False。
CByte 函数示例
本示例使用 CByte 函数将一表达式转成 Byte。
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble 为Double(双精度)。
MyByte = CByte(MyDouble) ' MyByte 值为 126。
...
CDate 函数示例
本示例使用 CDate 函数将字符串转换成
Date。一般说来,字符串格式的日期与时间硬编码(如示例中所示)并不好。较好的做法是使用日期原义表达式和时间的原义表达式(如
#2/12/1969#,#4:45:23 PM#)。
Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "February 12, 1969" ' 定义日期。
MyShortDate = CDate(MyDate) ' 转换为 Date 数据类型。
MyTime = "4:35:47 PM" ' 定义时间。
MyShortTime = CDate(MyTime) ' 转换为 Date 数据类型。