[英]C# 7 pattern matching semantics
我有两个我想认为相等的代码块:
然后完全相同,但转换为切换大小写类型。 (对不好的Resharper红色波浪状标记感到抱歉,Resharper尚不了解这一点)
基于开关的代码将在第一个return Actor.Done
时抛出Null引用异常,该异常不为null。
这是模式匹配错误还是在这里我缺少一些语义?
[编辑]我已经找到了解决方法。
改变这个:
case MessageEnvelope env:
至
case MessageEnvelope _:
var env = m as MessageEnvelope;
使一切正常。 这样就给我提出了一个问题,难道这些行应该完全一样吗?
当您捕获(以lambda形式)在switch语句中声明的模式变量时,这是一个已知的错误。 参见https://github.com/dotnet/roslyn/issues/16066
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.