在C#中,通过 `=>` 表达式体语法可以创建只读属性,下面解释一下为什么 `public IPLCModuleBase PLCModule => plcModuleBase;` 是只读属性。
1.为什么它是只读属性?
1. **表达式体语法**:
使用 `=>` 表达式体语法创建的属性,默认是 **只读的**,这意味着它没有提供 **set** 访问器, 只有 **get** 访问器。你只能读取该属性的值,而不能修改它。
例如:
```
public IPLCModuleBase PLCModule => plcModuleBase;
```
这段代码是 **简化版的只读属性**,它没有 `set` 访问器,仅提供了一个 `get` 访问器,并且这个 `get` 返回的是 `plcModuleBase` 字段的值。由于没有 `set`,因此这个属性是 **只读的**。
2. **没有 `set` 访问器**:
如果你想定义一个 **可读可写** 的属性,通常会写成:
```
public IPLCModuleBase PLCModule { get; set; }
```
但是,在你的代码中,只有 `get`,并且是用 `=>` 语法简化的写法,表示这是一个 **只读属性**,只能获取,不能设置。
3. **总结**:
- 如果只写了 `get`(无 `set`),则这个属性是 **只读的**。
- 使用 `=>` 语法就是为 `get` 访问器提供一个简单的表达式,它表示获取属性值的方式。
---
可以理解为:
- 它是 **只读的**,外部代码不能修改这个属性,只能获取它的值。
- 这里使用的 `=>` 是一个简化的写法,和传统的 `{ get { return xxx; } }` 是等价的。

被折叠的 条评论
为什么被折叠?



