vb.net强制类型转换 vb数据类型转换

VB.NET 中将Control 类强制转换成Textbox类

Dim txt As TextBox = CType(ctrl, TextBox)

为浑南等地区用户提供了全套网页设计制作服务,及浑南网站建设行业解决方案。主营业务为成都网站设计、成都做网站、外贸网站建设、浑南网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

当然也可以用directcast方法,实现的功能一样,trycast可以避免类型不符的时候不报错的功能。

完全不相的类型之间则是不能转换的,比如你的ctrl里实际上是一个button,那么无论如何都不可能给你转换成textbox,用上面的方法的话会抛出一个异常。

vb.net,强类型转换

这属于装箱拆箱。我举个例子你就明白了:

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#灵活得多

VB.NET的数据类型转换方式主要有哪几种?

CType 函数

任何数据类型

必须在两种数据类型之间定义扩大转换或收缩转换

引发 InvalidCastException

DirectCast

任何数据类型

一个类型必须继承自或者实现另一个类型

引发 InvalidCastException

TryCast

仅引用类型

一个类型必须继承或者实现另一个类型

返回 Nothing (Visual Basic)

请教VB.net里的一个强制类型转换问题

是的,因为这是一个强制转换,但你没有定义转换的方法。 如果想要 D d6 = (D) b1; 这句话能够正常运行,则需要在Class D中重载如下运算: internal class D:B { public static explicit operator D(B b) //这是一个显式转换 { //具体转换方法 }


当前标题:vb.net强制类型转换 vb数据类型转换
URL地址:http://cdiso.cn/article/hpjosh.html

其他资讯