所以这不起作用:
public int BufferedCount => { lock (buffer) { return buffer.Count; } }
Run Code Online (Sandbox Code Playgroud)
第一个{
出乎意料.但我不知道为什么.
这也行不通:
public int BufferedCount => lock (buffer) { return buffer.Count; }
Run Code Online (Sandbox Code Playgroud)
buffer
是一个私有列表,必须防止来自多个线程的并行请求.该属性应该提供该列表的当前计数.
我想我最近在lock
某个地方看到了一个带有声明的表达式身体,但我无法弄清楚它的外观如何.
该lock
语句是一个语句,不表达,所以它不能是表达浓郁成员的表达.您需要使用传统的方法体语法来使主体成为lock
语句.
lock
在表达式bodied成员中使用语句的唯一方法是使用某种组合其他语句的表达式,除了不使用表达式bodied语法之外,这些语句都是超级hacky和更多的工作.你必须做一些像定义lambda并立即执行它的东西,这将涉及比编写传统方法体更多的样板代码.
归档时间: |
|
查看次数: |
97 次 |
最近记录: |