[关闭]
@lsmn 2016-05-15T02:20:27.000000Z 字数 1208 阅读 2673

C# 7去掉了高级模式匹配特性

C# Roslyn


摘要

最初有望在C# 7中出现的高级模式匹配特性已于近日从future分支中排除出去,放入了该语言的下一个版本中。

正文

最初有望在C# 7中出现的高级模式匹配特性已于近日从future分支中排除出去,放入了该语言的下一个版本中。

Roslyn的GitHub库已经明确了C# 7模式匹配的变化范围。尤其是问题#10866(“将features/patterns分支分成两个包含/不包含在C# 7中的子特性分支”)和PR #10888(“去掉高级模式匹配特性的证据”)详尽地描述了这一变化的内容。

正如InfoQ几周之前的报道,模式匹配会成为C# 7中最吸引人的新特性,对有F#或Haskell背景的程序员而言尤其如此。具体地,新模式匹配特性预计提供如下功能:

那么,按照Roslyn问题#10866的描述,用于一些基本模式形式的语法“表达式 is 类型标识符”和“case 模式 when 表达式”已经移到了future分支,它们会包含在C# 7中。相反地,其他特性会留在patterns/features分支中,这个分支里的特性“可能在以后的版本中提供”。

就是说,那些更高级的模式匹配特性将不会出现在C# 7中。Reddit用户wreckedadvent发了一个帖子,有效地解释了那些特性:

这在C#开发者社区里引发了一些反响。一方面,那些更热衷于函数式编程的开发者表示,缺少一个让C#更加函数化的特性相对而言是一种欺骗。另一方面,其他开发人员表示,他们不关心或者很高兴C#的演化受到了严格的控制。

查看英文原文:Advanced Pattern Matching Features Removed From C# 7

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注