鉴于C# 6.0的新特性已经在网上曝光,在不违反NDA的情况下,把我知道的一些已经公开的新特性和大家分享,这些特性可能会在最终版本中有所不同,只是让大家抢个鲜。大家知道C# 4.0以后,微软很少对它有更新了,VS2013更是罕见地成为一个根本没有更新C#的VS发布版本。但是长时间的寂静之后是一次爆发! 首先要说的叫做自动属性初始化器。这个特性实际上VB.NET已经有了。比如我们写如下代码: 你还可以用它来写只读属性,比如这个List,我们一般只需要添加删除元素的操作,而指向另一个List似乎没有必要,那么我们可以定义成只读的。 然后是主构造函数,你可以给类定义一个主构造函数,这个构造函数的参数在类的声明中直接写,比如: 然后是继承构造函数 现在,我们可以用类似Lambda表达式的方式编写get属性,比如 还有using静态类,这个特性可以简化很多代码,比如: 其实有很多这样可以简化代码的语法糖,我不给代码了,只是大概说说,详细的请看这里 方法扩展,像Lambda那样定义方法 如果你觉得C#的改进只是小打小闹那就错了,C# 6.0将会在动态类型、异步编程、函数式编程、DSL和元编程、并行等方面有很多重大的改进,因为保密的原因,我不多说了,在合适的时机大家就能看到。 另外透露两个重要的消息: C# 6.0编译器使用C#实现,并且微软将开放源代码。 C#语言、编译器将和Roslyn项目统一,微软将深度开放编译器的二次开发接口。这样的接口有什么用?我们可以用它做很多事情,比如用词法、语法解析增强编译器,或者写脚本语言,我们可以很容易开发语法高亮、代码分析、重构、根据代码绘制UML等反向建模、代码转换(比如开发一个Java->C#或者C#->VB.NET)等等程序。 |
|
不知道啥时候能用上
|
|
1分 |
除了元数据,其它的都只能算是小打小闹。
|
1分 |
虽然是好 但是对我来说 没什么大用..
|
1分 |
我只关心C#编译器什么时候能直接编译为本地代码
|
1分 |
.net开发语言的功能已经够强了,应该有些产品,例如针对大数据或者云计算的框架
|
2分 |
c#6.0的到来会不会同时有这个帖说的JIT编译器?http://bbs.csdn.net/topics/390606449
|
2分 |
这些语法糖对于我这种只做算法那的人来说完全没用
|
2分 |
东西不多, 但依然非常精彩 !
|
误以为是我自己呢 |
|
1分 |
赞一个
|
1分 |
同关心 |
1分 |
有风声 ms要这样那样搞了?? |
还在玩.net 4.5
|
|
1分 |
外行求教 只做算法 的工作特性 |
2分 |
加的这些语法糖让C#的代码阅读难度越来越高,各种新潮的,老旧的代码方式共存会让人看得头疼。 ———– 有些语法特性会增加可读性的,比如二进制初始化器: 比如前面说的using静态类 比如out参数: 总的来说,新的语法减少了编写同样代码用的代码行数,越短的代码越容易理解。 |
1分 |
如果 一年 不跟进学习的话,估计看不懂 C#代码了
|
1分 |
有点看不懂C#代码了
|
1分 |
新特性看起来很好吃的样子
|
2分 |
其实现在已经有点看不懂有些c#代码了
最近几天研究oomapper 看了下automapper的源码,真是头晕,大量的表达式树语法, 准备再抽个时间研究下Express下面的那些玩意. |
还有 楼主是参与了c#6.0开发么?怎么涉及到什么保密协议? ——– |
|
1分 |
支持
|
1分 |
习惯了原本的东东
|
3分 |
就拿主构造函数这个特性来说,除了增加查阅代码的理解混乱程度并不能带来真正的编写便捷。 我个人的观点是,对于编程语言来说,加入新特性,语法糖一定要循序渐渐,因为一旦加了将来就去不掉了,慢慢的语法方式会变得越来越混乱,就像日文相对于中文的语法来说就是一个字,乱! ———– |
好吧 原来是翻译 我2了. |
|
1分 |
这些语法糖太坑了,看起来都费劲!
|
1分 |
越来越高大上了,渐觉自己落伍了好多,还停留在2.0和3.5的时代
|
1分 |
c#最优美的还是3和4版本,它的一些新特性确实给开发带来方便,再往后推出的语法糖未必要用。
|
1分 |
大爷的
还在用3.5呢。。。。4.0都没用过几次。。。4.5更不要说了。。。。 C#6.0这是准备5.0的节奏么?? |
偶尔用用c#的新手 路过
|
|
编出来的程序好使,才是真的
|
|
2-1 这种减法能减少多少编码?这些减法在整体代码中占有多大比例?这些减法编码的时间在整体开发中占有多大的比例? |
|
我只关心加载效率,和运行效率会不会提高。
|
|
全都去火星生活吧,地球已经不合适居住了。。。
|
|
这么细?
|
|
1分 |
c#不应该搞太多的花样在语法的写法上。这将会导致每一个程序员写出来的东西风格都不一致。不统一,是个麻烦事。
MS花精力在这些花样语法上,不如花精力整些实质性的东西出来,比如新颖的架构或的成熟产品。 — .net没前(钱)途的原因就在这里。 |
这么吊???? 不过还是习惯了 老式的写法. |
|
改进也太大了,够学习了
|
|
技术更新真快,怎么也跟不上了…
|
|
还在用2.0 摔….
|
|
6.0啊6.0
服务器环境现在已经够折腾人了 |
|
C#的语法糖已经够多的了,再加几个也甜不到哪里去。
C#总不成靠这些糖来和java叫板吧? 一个游戏,游戏规则应该是精炼的,而玩法却是无穷的。 MS不应该用这些语法糖来“丰富”C# |
|
2分 |
Announcing .NET Native Preview |
好像只有windows store的程序才可以 |
|
1分 |
好爽的语法,越来越简洁了,谢谢分享。
|
1分 |
这些糖不吃的话,过两年就看不懂年轻人的代码了
|
1分 |
赞一个,http://visualstudio.uservoice.com/forums/121579-visual-studio
上面的基本都实现了。?.应该以后会用得很广泛。 |
那是你没有尝试过大量的数据转换。 不过个人意见还是编写代码的时候尽可能兼容旧代码,除非到时候c#6已经是主流了(就像.net 4.0以下的几乎都很少了,linq都是随便用),那就可以放心用了。 |
|
我确实没有那个福分,终于知道这些东西是为谁准备的了,谢谢。 |
|
我是北京猿人
|
|
原文发布于 4.1日,把F#的地址当作C#6的地址
|
|
1分 |
实际编程者即使手下管理有一万程序员,不会看不懂年轻人的代码。 只有那些在一个小公司还自认为“我已经转为管理”的人才看不懂。 |
可以更新为这个版本么?
|
|
1分 |
这种语法糖,对于菜鸟来说还是“没时间学”。
高手没法用这个拉开差距。 |
http://bbs.csdn.net/topics/390751256?page=1#post-397112351 已经可能本地了。 |
|
嗯 确实很不错的特性 很实用 LZ可以散分了不咯
|
|
说的在理 |
|
C# 不能这样乱改啊,原来还能叫糖,现在这个样子看上去,是沙子,这到嘴里全败味了
|
|
其实我觉得像 public int X { get; set; } = ……; 这样的代码看起来真个别扭,还不如学学早期的vb.net的属性关键字的规范,写成
public property int X = …….; |
|
每次改进都有意义,这就是真理,一切都是动态的.
|
|
有空闲的话看看这个http://bbs.csdn.net/topics/390752401
|
|
实际上,强调熟悉新的语法(中的有意义部分)有一个好处,我们可以不经意地发现一些“喜欢混”的人。
|
|
如果一个人注重高效率地“创造”一些东西,那么他就跟那些只想微软给一大堆10年前的代码用来抄袭的人,看上去搞研发的习惯是不一样的。
|
|
楼主这么叼是怎么知道的。
|
|
我觉得挺好
有糖吃 呵呵 而且人家也说了 有保密的部分 散出些糖 让大家先乐乐 吸引下眼球 |
|
不知不覺已經6.0了……………
|
|
5.0都没有,突然来个6.0???
这消息可信性有多强 |
|
真的好好呀!
|
|
这个支持,这些语法糖本身造成了很大的c#版本断层。 |
|
跟不上节奏了,现在用的还是2.0的东西,没有体验过6.0是什么味道
|
|
面目全非~~~~~
感觉完全颠覆了,异步编程确实需要改改了,每次异步修改UI,最让我头疼,最少要 写一个扩展方法,最好是回复到2003一样,直接修改UI,C#自己去判断是否为异步调用 |
|
高大上的感觉。。。先来顶顶。。
|
|
实际意义没多少啊
|
|
期待中,有预览版,不知道何时能出来 |
|
语法糖而已,没用
|
|
目前用4.5,感觉很够用,写法也很满意
|
|
1分 |
其实还是很喜欢按部就班的代码风格,看着清晰,容易理解,一个构造函数都搞得这么多花样,反而不便于理解,不知老曹是否有这种看法
|
MS 这是要逆天的节奏啊
|
|
public int X { get; set; } = x;
这语法看起来真是太奇怪了,简直就是WTF! 语法糖应该是让代码看起来更直观,而不是更晕! |
|
留言,学习.
|