</nav><p>值类型<em></em>和引用类型是 C# 类型的两个主要类别。 值类型的变量包含类型的实例。 它不同于引用类型的变量,后者包含对类型实例的引用。 默认情况下,在分配中,通过将实参传递给方法并返回方法结果来复制变量值。 对于值类型变量,会复制相应的类型实例。 以下示例演示了该行为:</p>
讯享网
讯享网
如前面的示例所示,对值类型变量的操作只影响存储在变量中的值类型实例。
如果值类型包含引用类型的数据成员,则在复制值类型实例时,只会复制对引用类型实例的引用。 副本和原始值类型实例都具有对同一引用类型实例的访问权限。 以下示例演示了该行为:
值类型可以是以下种类之一:
- 结构类型,用于封装数据和相关功能
- 枚举类型,由一组命名常数定义,表示一个选择或选择组合
可为 null 值类型 表示其基础值类型 的所有值及额外的 null 值。 不能将 分配给值类型的变量,除非它是可为 null 的值类型。
你可使用 约束指定类型参数为不可为 null 的值类型。 结构类型和枚举类型都满足 约束。 可在基类约束中使用 (称为枚举约束),以指定类型参数为枚举类型。
C# 提供以下内置值类型,也称为“简单类型”:
- 整型数值类型
- 浮点型数值类型
- bool,表示布尔值
- char,表示 Unicode UTF-16 字符
所有简单值都是结构类型,它们与其他结构类型的不同之处在于,它们允许特定的额外操作:
- 可以使用文字为简单类型提供值。
例如, 是类型的 文本, 是类型的 文本,是类型的文本,是 该类型的 文本。
- 可以使用 const 关键字声明简单类型的常数。
例如,可以定义 。
不能具有其他结构类型的常数。
- 常数表达式的操作数都是简单类型的常数,在编译时进行评估。
值元组是值类型,而不是简单类型。
有关更多信息,请参阅 C# 语言规范的以下部分:
- 值类型
- 简单类型
- 变量
- 引用类型

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/157250.html