草庐IT

compiler-bug

全部标签

c# - 为什么编译器评估余数 MinValue % -1 与运行时不同?

我认为这看起来像是C#编译器中的错误。考虑这段代码(在一个方法中):constlongdividend=long.MinValue;constlongdivisor=-1L;Console.WriteLine(dividend%divisor);它编译时没有错误(或警告)。似乎是一个错误。运行时,在控制台上打印0。然后在没有const的情况下,代码:longdividend=long.MinValue;longdivisor=-1L;Console.WriteLine(dividend%divisor);运行时,它会正确地导致抛出OverflowException。C#Language

c# - 为什么编译器评估余数 MinValue % -1 与运行时不同?

我认为这看起来像是C#编译器中的错误。考虑这段代码(在一个方法中):constlongdividend=long.MinValue;constlongdivisor=-1L;Console.WriteLine(dividend%divisor);它编译时没有错误(或警告)。似乎是一个错误。运行时,在控制台上打印0。然后在没有const的情况下,代码:longdividend=long.MinValue;longdivisor=-1L;Console.WriteLine(dividend%divisor);运行时,它会正确地导致抛出OverflowException。C#Language

c# - VS 2017 Bug 或新功能?

升级到VS2017后,我从这段代码中得到以下错误(一直运行良好)byte[]HexStringToByteArray(stringhex){if(hex.Length%2==1)thrownewException("Thebinarykeycannothaveanoddnumberofdigits");byte[]arr=newbyte[hex.Length>>1];for(inti=0;i>1;++i)//Errorinthisline{arr[i]=(byte)((GetHexVal(hex[i异常(exception):Error1:Thevariable'i'cannotbeu

c# - VS 2017 Bug 或新功能?

升级到VS2017后,我从这段代码中得到以下错误(一直运行良好)byte[]HexStringToByteArray(stringhex){if(hex.Length%2==1)thrownewException("Thebinarykeycannothaveanoddnumberofdigits");byte[]arr=newbyte[hex.Length>>1];for(inti=0;i>1;++i)//Errorinthisline{arr[i]=(byte)((GetHexVal(hex[i异常(exception):Error1:Thevariable'i'cannotbeu

c# - 避免 aspnet_compiler 运行 PreApplicationStart 方法

所以,我的一个网站有一个PreApplicationStartMethod,它应该在应用程序启动之前运行:[assembly:PreApplicationStartMethod(typeof(ServiceStackAppHost),"Start")]此方法进行一些引导并依赖于设置的一些配置。现在,我想将网站编译作为我的自动构建过程的一部分-所以我调用了aspnet_compiler.exe,但它失败了,因为它运行PreApplicationStartMethod:AfterBuild:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\as

c# - 避免 aspnet_compiler 运行 PreApplicationStart 方法

所以,我的一个网站有一个PreApplicationStartMethod,它应该在应用程序启动之前运行:[assembly:PreApplicationStartMethod(typeof(ServiceStackAppHost),"Start")]此方法进行一些引导并依赖于设置的一些配置。现在,我想将网站编译作为我的自动构建过程的一部分-所以我调用了aspnet_compiler.exe,但它失败了,因为它运行PreApplicationStartMethod:AfterBuild:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\as

c# - "Avoid allocations in compiler hot paths"Roslyn 编码约定

我一直在阅读ContributingCode.NET编译器平台(“Roslyn”)的部分,我遇到了编码约定指南。我了解大多数编码约定以及他们为什么会要求它。但我不明白他们的意思:Avoidallocationsincompilerhotpaths:AvoidLINQ.Avoidusingforeachovercollectionsthatdonothaveastructenumerator.什么是“编译器热路径”?为什么我应该避免使用LINQ并避免对没有结构枚举器的集合执行foreach? 最佳答案 编译器hotpaths是编译器中

c# - "Avoid allocations in compiler hot paths"Roslyn 编码约定

我一直在阅读ContributingCode.NET编译器平台(“Roslyn”)的部分,我遇到了编码约定指南。我了解大多数编码约定以及他们为什么会要求它。但我不明白他们的意思:Avoidallocationsincompilerhotpaths:AvoidLINQ.Avoidusingforeachovercollectionsthatdonothaveastructenumerator.什么是“编译器热路径”?为什么我应该避免使用LINQ并避免对没有结构枚举器的集合执行foreach? 最佳答案 编译器hotpaths是编译器中

c# - "C# compiler as a service "的状态是什么

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭9年前。Improvethisquestion回到2008年的PDC,在AndersHejlsberg的C#future演讲中,他谈到了重写C#编译器并提供“编译器即服务”,我当时的印象是他们的目标是C#4.0时间框架为此....嗯,有人知道这是什么状态吗?它似乎不存在于CTP中,并且除了指向2008PDCsession视频(大约一个小时)的链接之外,WEB上几乎没有任何信息。这个倡议是否已经消失?

c# - "C# compiler as a service "的状态是什么

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭9年前。Improvethisquestion回到2008年的PDC,在AndersHejlsberg的C#future演讲中,他谈到了重写C#编译器并提供“编译器即服务”,我当时的印象是他们的目标是C#4.0时间框架为此....嗯,有人知道这是什么状态吗?它似乎不存在于CTP中,并且除了指向2008PDCsession视频(大约一个小时)的链接之外,WEB上几乎没有任何信息。这个倡议是否已经消失?