-
308 votesanswersviews
如何在插值字符串中使用三元运算符?
我很困惑为什么这段代码不能编译: var result = $"{fieldName}{isDescending ? " desc" : string.Empty}"; 如果我拆分它,它工作正常: var desc = isDescending ? " desc" : string.Empty; var result = $"... -
26 votesanswersviews
委托Roslyn中的缓存行为更改
给出以下代码: public class C { public void M() { var x = 5; Action<int> action = y => Console.WriteLine(y); } } 使用VS2013,.NET 4.5 . 查看反编译代码时,我们可以看到编译器在调用站点缓存委托: public ... -
259 votesanswersviews
C#6.0适用于.NET 4.0吗?
我创建了一个示例项目,使用C#6.0好东西 - 以null传播和属性初始化为例,设置目标版本.NET 4.0并且它...工作 . public class Cat { public int TailLength { get; set; } = 4; public Cat Friend { get; set; } public string Mew() { return ... -
0 votesanswersviews
实现INotifyPropertyChanged - 不使用AOP会有更好的方法吗?
我的问题是这个question的一个子问题 . 作者问: 微软应该为INotifyPropertyChanged实现一些快速的东西,就像在自动属性中一样,只需指定{get;组;通知;}我认为这样做很有意义 . 或者有任何并发症吗?我们自己可以在我们的属性中实现类似'notify'的内容 . 是否有一个优雅的解决方案在您的类中实现INotifyPropertyChanged或唯一的方法是在每个属性... -
132 votesanswersviews
C#6.0功能不适用于Visual Studio 2015
我正在使用C#6.0测试Visual Studio 2015,但语言功能不起作用 . 在MVC Web应用程序中,以下代码编译: if (!string.IsNullOrWhiteSpace(Model.Profile?.TypeName)) { // More logic here... } 但是,当我通过Debug和IIS Express运行应用程序时,我收到以下错误: CS152... -
136 votesanswersviews
如何在Visual Studio 2015中禁用C#6支持?
背景 我们在VS 2015中开发了一个项目,启用了C#6,偶尔需要由使用VS 2013而没有C#6的开发人员打开 . 我们无意在这个特定的解决方案中使用C#6(尽我所能) . 问题 Visual Studio和ReSharper建议使用有用的C#6语言结构,这些结构使得解决方案在没有C#6支持的早期版本的Visual Studio中无法运行 . 我已经disabled the ReSharper ... -
7 votesanswersviews
从Visual Studio 2015中的代码覆盖率中排除自动属性
我刚刚将一堆项目升级到VS2015 / C#6 . 现在,MSTest的代码覆盖率分析报告单元测试未涵盖某些自动属性 . 在Visual Studio 2013中并非如此,我怀疑它可能与C#6中的新autoproperty功能有关 . 处理所产生的所有误报都会使代码覆盖率工具的目的失败,因为它几乎不可能识别缺乏测试覆盖率的实际代码 . 我们真的不需要通过项目使用 ExcludeFromCodeCo...