C# Const and Readonly Field

1. 概述

C# 提供了两种 常量级别 数据,相当于 Kotlin 中的 constlazy value

使用 constreadonly 来进行修饰

2. Const

const 类型是 编译时常量

const 必须被初始化!

与 Kotlin 不同的是 C# 中的 const 除了字面常量以外,还允许使用 null 应用。

除此之外,C# 的 const 还允许在局部作用域使用,而 Kotlin 的 const 只允许在 Top-level 使用

3. Readonly Field

只读字段是一种特殊的 lazy 常量。

和 Kotlin 的 lazy-value 不同的是:

  1. 只读字段可以不被初始化

  2. 只读字段 只能被显式初始化,或者构造函数初始化

  3. 如果不被初始化,那么显式字段拥有默认值

4. 两者区别

C# 中 constreadonly 的主要区别在于:

const隐式静态的,即可以直接通过类名来调用 const

readonly 不是隐式静态的

0%