Questions tagged «roslyn»

Roslyn(又名.NET编译器平台)为开源C#和Visual Basic编译器提供了丰富的代码分析API。它支持使用Visual Studio使用的相同API来构建代码分析工具。

1
代码分析窗口哪里去了?
在Visual Studio 2013中,我使用“代码分析”窗口为开发和管理团队提供了报告。 在Visual Studio 2015 Enterprise RTM中,这些错误已返回到错误窗口,我不再只能看到单个项目的CA问题,也不能按类型对其进行筛选。 有没有办法使“代码分析”窗口恢复原状?

1
lambda表达式中的枚举的编译方式有所不同;过载分辨率改善的结果?
尝试使用Visual Studio 2015 RC时,我收到了先前工作代码的运行时错误。给定lambda (x => x.CustomerStatusID == CustomerStatuses.Active)作为传递给函数Expression<>,调试器将显示表达式树中的差异。以前它是这样编译的: .Lambda #Lambda1<System.Func`2[Services.DataClasses.CustomerDC,System.Boolean]>(Services.DataClasses.CustomerDC $x) { (System.Int32)$x.CustomerStatusID == 0 } 但是在C#6.0中,它现在编译为 .Lambda #Lambda1<System.Func`2[Services.DataClasses.CustomerDC,System.Boolean]>(Services.DataClasses.CustomerDC $x) { (System.Int32)$x.CustomerStatusID == (System.Int32).Constant<Services.DataClasses.CustomerStatuses>(Active) } 尽管对我的遍历树的代码的修复很简单,并且可以理解其他细节,但是有人知道像这样漂浮的其他陷阱吗? 或者,是否有人链接到有关如何改进重载分辨率的细节的信息?我找不到。
68 c#  lambda  enums  roslyn  c#-6.0 

3
未检查的uint的C#溢出行为
我已经在https://dotnetfiddle.net/测试此代码: using System; public class Program { const float scale = 64 * 1024; public static void Main() { Console.WriteLine(unchecked((uint)(ulong)(1.2 * scale * scale + 1.5 * scale))); Console.WriteLine(unchecked((uint)(ulong)(scale* scale + 7))); } } 如果我使用.NET 4.7.2进行编译,则会得到 859091763 7 但是如果我使用Roslyn或.NET Core,我会得到 859091763 0 为什么会这样?
10 c#  .net  overflow  roslyn  uint 

2
当似乎无法实现空引用时,为什么会收到可能的空引用空引用警告?
阅读了有关HNQ的问题之后,我继续阅读了有关C#8中的Nullable引用类型的信息,并进行了一些实验。 我非常清楚,有人说“我发现了编译器错误!”,十分之九,甚至更多。这实际上是设计使然,并对自己产生误解。而且,因为我直到今天才开始研究此功能,所以显然我对它没有很好的了解。这样处理后,让我们看下面的代码: #nullable enable class Program { static void Main() { var s = ""; var b = s == null; // If you comment this line out, the warning on the line below disappears var i = s.Length; // warning CS8602: Dereference of a possibly null reference } } …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.