vb.net装箱,net 装箱

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

Converter.ToString(枚举)的返回值是什么

显然是因为编译器不同,产生了不同的IL,分别调用了Converter.ToString(Int32)和Converter.ToString(Object)两个不同的重载 看一下C#的编译器是怎么翻译的(csc.exe)这里假设枚举类型的值是0(MS的编译器对写在代码里面的枚举值,都只是当一个常数处理的,和Const的一样) 在C#里面的:Converter.ToString(枚举)编译出来的结果是:ldc.i4.0 //枚举值是0 box TheEnumType //装箱 call string [mscorlib]System.Convert::ToString(object) //调用Converter.ToString(Object) 在C#里面的:Converter.ToString((int)枚举)编译出来的结果是:ldc.i4.0 //枚举值是0 call string [mscorlib]System.Convert::ToString(int32) //调用Converter.ToString(Int32) call string [mscorlib]System.Convert::ToString(int32) //调用Converter.ToString(Int32) 在VB.Net里面的:Converter.ToString(DirectCast(枚举,object))编译出来的结果是:ldc.i4.0 //枚举值是0 box TheEnumType //装箱 call object [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::GetObjectValue(object) //调用RuntimeHelpers的GetObjectValue方法 call string [mscorlib]System.Convert::ToString(object) //调用Converter.ToString(Object) 关于这里的RuntimeHelpers的GetObjectValue方法:在MSDN上的描述是:将值类型装箱。MSDN但是为什么C#没有这一步?还不是十分理解这一步的意义 难道VB.Net认为用box装箱还有什么缺点,用上RuntimeHelpers的GetObjectValue方法才算完美?或者还是根本就是多此一举……

.NET中大写的Object和小写的object类有什么区别?

object 类型在 .NET Framework 中是 Object 的别名。在 C# 的统一类型系统中,所有类型(预定义类型、用户定义类型、引用类型和值类型)都是直接或间接从 Object 继承的。可以将任何类型的值赋给 object 类型的变量。将值类型的变量转换为对象的过程称为“装箱”。将对象类型的变量转换为值类型的过程称为“取消装箱”。

Object 支持 .NET Framework 类层次结构中的所有类,并为派生类提供低级别服务。这是 .NET Framework 中所有类的最终基类;它是类型层次结构的根。

vb.net的工具箱没有了

在代码编辑窗口中就是这样的。在窗体设计的时候那些东西才会显示。

新闻标题:vb.net装箱,net 装箱
路径分享:https://www.cdcxhl.com/article44/dsehehe.html

成都网站建设公司_创新互联,为您提供品牌网站制作网站设计网站排名微信小程序外贸建站手机网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站托管运营