|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
也许C#刚上市的时候有些抄袭net网页编程吧,但自从C#2.0上市之后,整个局面就扭转乾坤了,不但net网页编程在模仿C#,而且他从来都没能跟得上C#的脚步。媒介
VS2015在本人呆板上的确是装好了,费了老劲了,想来体验一下跨平台的快感,了局被微软狠狠的来了一棒子了,装好了仍是没甚么用,应当还必要装Xarmain插件,设置一些参数吧,因为这块之前从未打仗过,想了想仍是先不把工夫持续华侈在这里了,因而乎来体验一下新特征了。
本文参考http://roslyn.codeplex.com,参考PDF文档http://files.cnblogs.com/aehyok/VS2015CSharp6.0.pdf
1、主动属性的加强
1.1、主动属性初始化(Initializersforauto-properties)
C#4.0下的判断完成不了的。
C#6.0中主动属性的初始化体例
只需打仗过C#的一定城市喜好这类体例。真是简便便利呀。
1.2、只读属性初始化Getter-onlyauto-properties
先来看一下我们之前利用的体例吧
- publicclassCustomer{publicstringName{get;}publicCustomer(stringfirstName,stringlastName){Name=firstName+""+lastName;}}
复制代码
再来看一下C#6.0中- publicclassCustomer{publicstringFirstName{get;}="aehyok";publicstringLastName{get;}="Kris";}
复制代码 和第一条主动属性初始化利用体例分歧。
2、Expressionbodiedfunctionmembers
2.1用Lambda作为函数体Expressionbodiesonmethod-likemembers- publicPointMove(intdx,intdy)=>newPoint(x+dx,y+dy);
复制代码 再来举一个复杂的例子:一个没有前往值的函数- publicvoidPrint()=>Console.WriteLine(FirstName+""+LastName);
复制代码 2.2、Lambda表达式用作属性Expressionbodiesonproperty-likefunctionmembers- publicoverridestringToString(){returnFirstName+""+LastName;}
复制代码 如今C#6中
- publicclassUser{publicstringFirstName{get;set;}publicstringLastName{get;set;}publicoverridestringToString()=>string.Format("{0}——{1}",FirstName,LastName);publicstringFullName=>FirstName+""+LastName;}
复制代码
3、援用静态类UsingStatic
在Using中能够指定一个静态类,然后能够在随后的代码中间接利用静态的成员
4、空值判别Null-conditionaloperators
间接来看代码和运转了局
经由过程了局能够发明前往的都为null,不再像之前那样烦琐的判别null勒。
5、字符串嵌进值
在字符串中嵌进值
之前一向利用的体例是
如今我们能够复杂的经由过程以下的体例举行拼接
6、nameof表达式nameofexpressions
在办法参数反省时,你大概常常看到如许的代码(之前用的少,此次也算学到了)
- publicstaticvoidAddCustomer(Customercustomer){if(customer==null){thrownewArgumentNullException("customer");}}
复制代码
内里有谁人customer是我们手写的字符串,在给customer更名时,很简单把上面的谁人字符串忘记,C#6.0nameof帮我们办理了这个成绩,看看新写法
- publicstaticvoidAddCustomer(Customercustomer){if(customer==null){thrownewArgumentNullException(nameof(customer));}}
复制代码
7、带索引的对象初始化器Indexinitializers
间接经由过程索引举行对象的初始化,本来真的能够完成
如果需要重新编写代码,几乎任何一门计算机语言都可以跨平台了,还用得着net网页编程嘛,而且像PHP/C#等语言不需要修改代码都可以跨Windows/Linux。 |
|