是否可以使用async
get
和set
方法创建属性?
如果是,如何?如果不是,
我应该如何正确调用异步方法?get
set
不。从 C# 5 规范的第 10.15 节:
带有 async 修饰符的方法(第 10.6 节)或匿名函数(第 7.15 节)称为异步函数。通常,术语 async 用于描述具有 async 修饰符的任何类型的函数。
所以只有方法、lambda 表达式和匿名方法可以使用async
修饰符。
就个人而言,我认为无论如何拥有这样的财产有点奇怪,特别是因为该财产必须返回Task<T>
而不是T
. 一个属性通常应该“感觉”非常轻巧——这并不适合异步。
不,您可以创建看起来像属性(async Task<T> getFoo()
和async Task setFoo(T item)
)的方法,但它们本身不是属性。