Visual Studio 2015与C#6.0新特性

Visual Studio 2015与C#6.0新特性

更多发现  admin  9个月前 (07-20)  4339浏览

今天,我们很高兴宣布下一代开发工具Visual Studio 2015的新特性,新的改进包括:支持跨平台的C++开发、新开源的.NET编译平台、C++11和C++14的支持,集成Apache的Cordova跨平台移动开发工具和ASP.NET5新框架,这些改进有大有小,零度在此摘录Visual Studio 2015在C#开发方面的新特性。

1、使用null条件运算符,在调用对象的属性或者方法时,我们通常需要检查对象是否为null,现在你不需要写一个if语句,我们提供更便捷的方法,下面的代码获取list中元素的数量,当list本身为null时,Count方法也将返回null值。

public int? GetListItemCount(List<int> list)
{
    return list?.Count();
}

2、使用新增的nameof关键字获取参数、成员和类型的字符串名称。比个例子:当需要知道变量名的字符串表示形式时,我们可以这样写:

DateTime currentDate = DateTime.Now;
Console.WriteLine("{0}={1}", nameof(currentDate), currentDate);

输入结果如下所示,nameof关键字将变量名作为字符串形式直接输出:

currentDate=2014/12/8 21:39:53

3、在字符串中直接插入变量,而不需要在字符串格式化语句中写形如{n}的格式化模板,如下的代码输出:“零度编程,欢迎您!”

string siteName = "零度编程";
string welcome = "\{siteName},欢迎您!";

4、Lambda表达式可以作为方法体或者属性的实现,我们可以直接将一个表达式赋予一个方法或者属性。

public class Book
{
    public decimal Price { get; set; }

    public int Count { get; set; }

    public decimal GetTotalPrice() => this.Price * this.Count;
}
public class Book
{
    public decimal Price { get; set; }

    public int Count { get; set; }

    public decimal TotalPrice => this.Price * this.Count;
}

5、在这之前,如果您要初始化对象的一个属性或者给属性赋默认值,需要定义一个私有字段,给私有字段赋初始值,现在可以这样写:

public class Book
{
    public decimal Price { get; set; } = 0m;

    public int Count { get; set; } = 10;
}

6、在新的C#6.0种提供了对象索引初始化的新方法,现在初始化一个对象的索引可以这样:

var myObject = new MyObject
{
    ["Name001"] = "零度",
    ["Name002"] = "编程",
    ["Name003"] = "网站"
};

7、在对一个异常进行catch捕获时,提供一个筛选器用于筛选特定的异常,这里的if就是一个筛选器,示例代码如下:

try
{
    throw new ArgumentNullException("bookName");
}
catch (ArgumentNullException e) if(e.ParamName == "bookName")
{
    Console.WriteLine("bookName is null !");
}

8、静态引用,在这之前通过using关键字可引用命名空间,现在你可以通过using引用一个类,通过using引用的类,在代码中可不写类名,直接访问静态属性和方法。

using System.IO.File;

namespace Test
{
    public class MyClass
    {
        public void CreateTextFile(string fileName)
        {
            CreateText(fileName);
        }
    }
}

上面代码中CreateText属于System.IO命名空间下File静态类的方法,由于我们使用了using静态引入了类File,所以可直接使用方法名,而不需要File.CreateText(fileName)这样写。

9、这是另一个和异常相关的特性,使得我们可以在catch 和finally中等待异步方法,看微软的示例:

try
{
  res = await Resource.OpenAsync(“myLocation”); // You could do this.
}
catch (ResourceException e)
{
  await Resource.LogAsync(res, e); // Now you can do this.
}
finally
{
  if (res != null)
  await res.CloseAsync(); // … and this.
}

10、在之前,结构struct不允许写一个无参构造函数,现在您可以给结构写一个无参构造函数,当通过new创建结构时构造函数会被调用,而通过default获取结构时不调用构造函数。

11、使用Visual Studio 2015 创建项目时,不但可选择.NET Framework的版本,现在也可选择C#语言的版本。

12、对字典的初始化,提供新的方法,在新版本的C#6中可使用如下的方式初始化一个字典。

Dictionary<string, string> siteInfos = new Dictionary<string, string>()
{
    { "SiteUrl", "www.xcode.me" },
    { "SiteName", "零度编程" },
    { "SiteDate", "2013-12-09" }
};

13、新的代码编辑器提供更好的体验,集成最新名为Roslyn的编译器,一些新的特性让您对这款编辑器爱不释手,最新的Visual Studio 2015中新增了一个灯泡功能,当您的代码中存在需要修复的问题或者需要重构时,代码行的左边将显示一个小灯泡,点击小灯泡后编辑器将帮助您自动修复和重构现有代码。

以上就是零度编程为您整理的关于Visual Studio 2015在开发中的新特性,希望对您有所帮助。

时间: 2025-01-16 11:17:34

Visual Studio 2015与C#6.0新特性的相关文章

Visual Studio 2017 针对移动开发的新特性介绍

欢迎大家持续关注葡萄城控件技术团队博客,更多更好的原创文章尽在这里~~ Visual Studio是世界上最好的IDE之一,如果是 .NET世界,那就没有之一了(^_^),而最近推出的Visual Studio 2017在移动平台方面更是加强了这一点.这个版本包含了一些非常棒的功能,包括实时单元测试.新的重构.代码提示.C#7.0的支持,以及帮助移动开发人员构建更好的移动应用程序的功能. 下面,就让我们一起来看看Visual Studio 2017中有哪些功能使得移动开发变得更加容易. Visu

Visual Studio 2015 介绍

一.使用多个账户登录借助 Visual Studio 2015,全新简化的登录体验旨在大大简化对联机资源的访问,即使你拥有多个 Visual Studio 帐户也是如此. 登录到 Visual Studio 后,你会自动登录到 Visual Studio 2015 的所有实例和你计算机上的 Blend. 登录将解锁预发行版本,并自动开始为你漫游你的设置. 在 Visual Studio 2015 中,你的帐户跨功能共享,所以只要拥有适当令牌,就可以从“团队资源管理器”访问你的 Visual St

VS2015--win32工程配置的一些想法之在 Visual Studio 2015 中进行调试的同时分析性能

出处: https://msdn.microsoft.com/zh-cn/magazine/dn973013(en-us).aspx 许多开发商花了绝大多数时间获取应用程序才能正常发挥作用.更少的时间里专注于应用程序的性能.虽然有了很长一段时间分析工具在 Visual Studio 中的,他们是单独的一组学习工具.许多开发人员没有花时间去学习和使用它们的时候会出现性能问题. 这篇文章将介绍 Visual Studio 2015 年新的诊断工具调试器窗口. 它还将描述如何使用它来分析性能作为定期调

VS2015--win32project配置的一些想法之在 Visual Studio 2015 中进行调试的同一时候分析性能

出处: https://msdn.microsoft.com/zh-cn/magazine/dn973013(en-us).aspx 很多开发商花了绝大多数时间获取应用程序才干正常发挥作用.更少的时间里专注于应用程序的性能. 尽管有了非常长一段时间分析工具在 Visual Studio 中的,他们是单独的一组学习工具.很多开发者没有花时间去学习和使用它们的时候会出现性能问题. 这篇文章将介绍 Visual Studio 2015 年新的诊断工具调试器窗体. 它还将描写叙述怎样使用它来分析性能作为

Visual Studio 2015速递(1)——C#6.0新特性怎么用

对于IDE的争论这个话题,在开发部已经由来已久,甚至可以追溯到微软.NET技术发布之前,当时的主打产品是ActiveX控件,随着Borland Delphi的快速崛起,RAD势不可挡,迅速催生了很多经典的IDE,微软旗下最有名气的就是VC和VB了:此后.NET技术发布,Visual Studio迈进20XX时代,对于VS2002和VS2003我已经基本没有太深的印象了,仅仅留在记忆里的是这货要高效率,必须得安装一个叫Resharper的玩意,否则也就比记事本强那么一点点:随后微软发布了VS200

Visual Studio 2015+CUDA8.0+CUDNN5配置Caffe-windows(BLVC)

综合  来源:Angle_Cal  2016-12-19 17:32  624℃  0评论 BLVC版本的Caffe-windows已经支持Visual Studio 2015,下面的配置过程是综合了其他人的经验而且验证过的,可以确保有效. 下载Caffe-Windows(BLVC) 下载地址:GitHub 下载好解压缩即可. 安装VS2015,CUDA,CUDNN,Anaconda,CMake VS2015 安装请自行完成,需要注意的是: ①如果你以前安装有早起的VS,那么安装VS2015可能

Visual Studio 2015速递(3)——ASP.NET 新特性

系列文章 Visual Studio 2015速递(1)--C#6.0新特性怎么用 Visual Studio 2015速递(2)--提升效率和质量(VS2015核心竞争力) 早在5月份的Build大会上微软就非常高调的宣传ASP.NET 5了,做为微软开发工具中最重要的几个技术栈之中的一个,本次VS2015的公布却没有尾随公布正式版,也算是一件不大不小的憾事. 即使没有ASP.NET 5.VS2015也不会让你太失望,毕竟还是有非常多小幅的升级和增强. 先来说说ASP.NET 4.6吧.微软总

解析Visual Studio 2015促进生产力的10个新功能

1 性能提示 Performance Tips 当我们想知道执行一段代码所耗费的时间时,需要借助于.NET 框架的Stopwatch类,像下面这样: class Program { static void Main() { // Create new stopwatch Stopwatch stopwatch = new Stopwatch(); // Begin timing stopwatch.Start(); // Do something 这里是需要测试的耗费时间的代码 for (int

Visual Studio 2015 &amp; C#6.0 试用报告,持续更新。

昨天早上看到了.net开源的消息,我是非常兴奋的,毕竟局限于Windows的.NET经常被人唾弃.VB暂且不提,C#常年被人指责跨平台性不佳,我也是无能为力.即使有Mono等第三方跨平台工程,.NET的跨平台性还是不尽人意. 看到了.NET开源的消息后,又看见了Visual Studio 2015,让我没想到的是,VS居然已经集成了跨平台开发,这令我十分意外,如此保守和唾弃Android.Linux的微软,居然肯在自家的VS上集成其他平台的开发.... 我对Android的了解还不是很深,只停留