C# Getter 和 Setter:反对异步操作的案例
在标准 C# 编程中,getter 和 setter 执行同步操作。 然而,问题出现了:我们应该在其中使用异步方法吗? 虽然技术上可行,但通常被认为是不好的做法。
为什么要避免 Getter 和 Setter 中的异步?
核心问题是属性旨在表示对象的当前状态。 引入异步操作会导致不匹配:在异步操作完成之前,属性的值可能无法反映实际的最新数据。这违背了财产的目的。
更好的选择:
不要在属性中使用异步,请考虑以下替代方案:
InitAsync()
)。该属性最初可以返回默认值,直到初始化完成。AsyncLazy
库(或类似的延迟加载机制)。这提供了一个等待的属性,而没有固有的设计冲突。最佳实践:
将异步操作与属性分开,以维护清晰、可预测且高效的代码。 建议的替代方案提供了更清洁、更强大的解决方案。
以上是我应该在 C# Getter 和 Setter 中使用异步方法吗?的详细内容。更多信息请关注PHP中文网其他相关文章!