6

是否可以使用async getset方法创建属性?

如果是,如何?如果不是,
我应该如何正确调用异步方法?getset

4

2 回答 2

9

不。从 C# 5 规范的第 10.15 节:

带有 async 修饰符的方法(第 10.6 节)或匿名函数(第 7.15 节)称为异步函数。通常,术语 async 用于描述具有 async 修饰符的任何类型的函数。

所以只有方法、lambda 表达式和匿名方法可以使用async修饰符。

就个人而言,我认为无论如何拥有这样的财产有点奇怪,特别是因为该财产必须返回Task<T>而不是T. 一个属性通常应该“感觉”非常轻巧——这并不适合异步。

于 2012-09-21T16:41:01.773 回答
4

不,您可以创建看起来像属性(async Task<T> getFoo()async Task setFoo(T item))的方法,但它们本身不是属性。

于 2012-09-21T16:39:29.900 回答