C# 6.0可能会支持模式匹配了

今天在CodePlex的Roslyn讨论区发现了一个帖子:Draft spec for records and pattern-matching in C#,估计MS计划在C# 6.0中支持模式匹配了。

设计草案的文档如下:Pattern Matching for C#?,看起来非常不错的样子。

模式匹配的缺席一直是C#的弱项,.Net语言中,F#是支持模式匹配的,但日常的编程过程中感觉还是C#这种瑞士军刀级的语言更为方便。这个升级还是非常给力的,不过估计又有一大批人要抱怨说看不懂了,又升级了神马之类的了。

C# 6.0可能会支持模式匹配了

时间: 2024-08-17 13:46:25

C# 6.0可能会支持模式匹配了的相关文章

C# 8.0中的模式匹配

C# 8.0中的模式匹配相对C# 7.0来说有了进一步的增强,对于如下类: class Point{    public int X { get; }    public int Y { get; }    public Point(int                x, int     y) => (X, Y) = (x, y);    public void Deconstruct(out int x, out int y) => (x, y) = (X, Y);} 首先来看C# 7.

移植 libuv 到 Visual C++ 6.0 并支持在 Windows XP 系统下编译

移植版的 libuv:https://github.com/liigo/libuv-vc6 (支持VC6和XP,作者Liigo). 我从一年前(大概2013年6,7月份)开始在业余时间做这项移植工作,走走停停,陆续用了一两个月的时间,才基本完成.这期间做了详细的移植记录,现在发布出来,希望对某些人有用.就在昨天(2014年7月12日),我又把移植的代码同步到最新的libuv(https://github.com/joyent/libuv)并发布到Github上:但是之前的移植记录没有变更,或许在

Xcache3.2.0不支持php7.0.11

编译安装xcache3.2.0时在make这一步报错: AUTOCHECK missing : "arg_flags" "cache_size" AUTOCHECK INFO: xc_constinfo_t: processor looks goodAUTOCHECK INFO: xc_op_array_info_detail_t: processor looks goodAUTOCHECK INFO: xc_op_array_info_t: processor l

关于开源驰骋工作流引擎ccbpm对bpmn2.0的支持

各位ccbpmer : Ccbpm将要支持bpmn2.0了. 我们会保留现在的ccbpm设计模式,也支持bpmn2.0的规范,让ccbpm与国际接轨.包括.net版本ccflow与java版本jflow.在新版本中,我们将要支持导出导入两种格式的流程模版文件.也就是说,只要你画的流程符合bpmn2.0的规范,也可以导入到ccflow或者jflow工作流引擎中,支持bpmn2.0的画图工具很多,例如:viso,rose. 什么是bpmn2.0? 业务流程模型注解(Business Process 

瞬间爆炸-MongoDB4.0将支持多文档事务

瞬间爆炸-MongoDB4.0将支持多文档事务 背景 Part1:写在最前 在早期,我们说的MongoDB支持事务是指针对MongoDB的单文档级别,与我们MySQL等关系型数据库中的事务是不同的,那什么是单文档事务呢? >db.username.update({'name': 'helei'}, {$set: {'age': 26, 'score': 85}}) 上述命令对username集合中,name为helei列的行进行更新,如果age更新为26,score由于宕机或其他原因导致更新失败

如何让你的服务器对TLS1.2、1.1和1.0全支持

微信小程序的wx.request要求HTTPS 服务器的 TLS 版本必须支持1.2及以下版本,一般就是1.0.1.1.1.2要同时支持这三个版本,一个也不能少,要不然就会出现wx.request fail的情况. 我服务器是装window server 2008 R2版本的,访问小程序体验版死活读不出数据,经查原因是服务器只支持TLS1.2,1.1与1.0不支持,然后会出现fail的情况,如何让HTTPS服务器也支持1.1与1.0呢,方法列下: 请先备份导出HKEY_LOCAL_MACHINE

[C] zlstdint(让VC、TC等编译器自动兼容C99的整数类型)V1.0。支持Turbo C++ 3等DOS下的编译器

作者:zyl910 以前我曾为了让VC++等编译器支持C99的整数类型,便编写了c99int库来智能处理(http://www.cnblogs.com/zyl910/p/c99int_v102.html).如今为了兼容Turbo C++ 3等DOS下的编译器,做了重大改变,不再适合沿用旧名,于是采用了zlstdint这个新名. 一.用法简介 用法很简单——把z_stdint.h.z_inttyp.h这2个文件放到你的项目中,便可以正常的使用C99整数类型及相关的宏了. 范例代码—— #defin

tomcat 7 7.0.73 url 参数 大括号 {} 不支持 , 7.0.67支持

7.0.73 url有JSON.stringify一个对象,然后作为参数拼接.结果请求报400错误,但是tomcat 7.0.67版本没有问题,猜测是高级版本对url参数比较严格. 处理方法: 1.encodeURIComponent(JSON.stringify(files))  加一下encodeURIComponent 处理即可. 2.换支持{}的tomcat,.

遇过的坑-IE(9.0)不支持console.info

在js中,可以通过console.info输出日志.各种js教程也经常用这个方式来输出日志.因此,我便想当然地认为,这个方法,是标准用法,所有浏览器都兼容.但事实上,IE对这个函数的支持,是有问题的,会中断下面其他js代码的执行.最近,便因为这个问题吃了个亏. 案例:在chrome上,页面能正常地通过js加载数据,但是,在IE(9.0)上,却死活没有数据,js也没有报错.看了后台日志,压根没有收到浏览器js发起的数据请求.没发起请求吗?好办~打开IE的开发者工具看看.可是,打开IE开发者工具,打