几周前我在分歧的地方读到了有关C#6的一些新特征。我就决议把它们都搜集到一同,假如你还没有读过,就能够一次性把它们都过一遍。它们中的一些可能不会如预期那样奇异,但那也执偾今朝的更新。
你可以经过下载VS2014或许装置这里针对visual studio2013的Roslyn包来获得它们。
那末让我们看看吧:
运用它的目标是简化基于索引的字符串,仅此罢了。它不是像如今C#的一些静态特征,由于其外部运用了正轨的索引功用. 为了编译了解请看下面的示例:
var col = new Dictionary<string, string>() { $first = "Hassan" }; //Assign value to member //the old way: col.$first = "Hassan"; //the new way: col["first"] = "Hassan";
异常过滤器曾经被VB编译器支撑了,而如今它也被引入了C#。异常过滤器让你可认为一个catch块指定一个前提. 这个catch块就只会在前提被知足时被履行 , 这是我最爱好的特征,那末就让我们来看看示例吧:
try { throw new Exception("Me"); } catch (Exception ex) if (ex.Message == "You") { // this one will not execute. } catch (Exception ex) if (ex.Message == "Me") { // this one will execute }其它翻译版本 (1) 加载中
据我所知,没有人晓得C# 5中catch和finally代码块内await要害字不成用的缘由,不管何种写法它都是不成用的。这点很好由于开辟职员常常想检查I/O操纵日记,为了将捕获到的异常信息记载到日记中,此时需求异步实行。
try { DoSomething(); } catch (Exception) { await LogService.LogAsync(ex); }
这个特征答应开辟职员在表达式中界说一个变量。这点很容易但很适用。过来我用asp.net做了很多的网站,下面是我经常使用的代码:
long id; if (!long.TryParse(Request.QureyString["Id"], out id)) { }
优化后的代码:
if (!long.TryParse(Request.QureyString["Id"], out long id)) { }
这类声明方法中变量的感化域和C#运用普通方法声明变量的感化域是一样的。
其它翻译版本 (1) 加载中这一特征答应你在一个using语句中指定一个特定的类型,尔后这个类型的一切静态成员都能在前面的子句中运用了.
using System.Console; namespace ConsoleApplication10 { class Program { static void Main(string[] args) { //Use writeLine method of Console class //Without specifying the class name WriteLine("Hellow World"); } } }
C# 6 主动温馨化属性就像是在声明地位的域。这里独一需求晓得的是这个初始化不会招致setter办法不会在外部被挪用. 后台的域值是间接被设置的,下面是示例:
public class Person { // You can use this feature on both //getter only and setter / getter only properties public string FirstName { get; set; } = "Hassan"; public string LastName { get; } = "Hashemi"; }
呼哈哈,主结构器将帮你消弭在获得结构器参数并将其设置到类的域上,以支撑前面的操纵,这一苦楚. 这真的很有效。这个特征的首要目标是运用结构器参数实行初始化。当声了然主结构器时,一切其它的结构器都需求运用 :this() 来挪用这个主结构器.
最初是下面的示例:
//this is the primary constructor: class Person(string firstName, string lastName) { public string FirstName { get; set; } = firstName; public string LastName { get; } = lastName; }
要留意主结构器的挪用是在类的顶部.
本文中的一切译文仅用于进修和交换目标,转载请务必注明文章译者、出处、和本文链接。 2KB翻译任务按照 CC 协定,假如我们的任务有进犯到您的权益,请实时联络我们。2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务