基础才是重中之重~值类型和引用类型

 

回到目录

在 Visual Basic 中,数据类型是基于其类别实现。 根据特定类型的变量存储的是自己的数据还是指向数据的指针,可以对 Visual Basic 数据类型进行分类。 如果它存储的是自己的数据,则它是值类型;如果它保存指向内存中其他位置的数据的指针,则它是引用类型。

如果数据类型在它自己的内存分配中存储数据,则该数据类型就是“值类型” 值类型包括:

  • 所有数字数据类型

  • Boolean CharDate

  • 所有结构,即使其成员是引用类型

  • 枚举,因为其基础类型总是 SByteShortIntegerLongByteUShortUIntegerULong

每个结构是值类型,因此,即使它包含引用类型成员。 因此,值类型 (如 CharInteger 由 .NET framework 结构实现。

可以通过使用保留关键字(例如 Decimal)声明值类型。 也可以使用 New 关键字初始化值类型。 这对于值类型有一个带参数的构造函数的情况尤为有用。 此示例有 Decimal(Int32, Int32, Int32, Boolean, Byte) 构造函数,它从提供的部分生成新的 Decimal 值。

“引用类型”包含指向存储数据的其他内存位置的指针。 引用类型包括:

  • String

  • 所有数组,即使其元素是值类型

  • 类类型,class

  • 委托

类是一种“引用类型”。 因此,诸如 ObjectString 之类的引用类型都受 .NET Framework 类支持。 请注意,每个数组都是一种引用类型,即使其成员是值类型。

由于每种引用类型表示基础 .NET framework 类,则必须使用 New 关键字,在初始化时。 下面的语句初始化一个数组。

 
var person = new Person{}

以下编程元素未限定为类型,因为您无法将它们中的任何一个指定为声明元素的数据类型:

  • 命名空间

  • 模块

  • 事件

  • 属性和过程

  • 变量、常数和字段

可以将引用类型或值类型指派给 Object 数据类型的变量。 Object 变量总是存储指向数据的指针,从不存储数据本身。 然而,如果为 Object 变量指派值类型,该变量的行为将如同存储自己的数据一样。 有关更多信息,请参见 Object 数据类型

可以查看 Object 变量是否通过将为引用类型或值类型到 Microsoft.VisualBasic 命名空间的 Information 类的 IsReference 方法。 如果 Object 变量的内容表示引用类型,则 Information.IsReference 返回 True

回到目录

posted @   张占岭  阅读(683)  评论(1编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2012-03-21 你必须要知道的架构知识~第五章 依赖住入在这个时候出场了
点击右上角即可分享
微信分享提示