Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# VS2017缺陷还是新功能?_C#_Roslyn_C# 7.0 - Fatal编程技术网

C# VS2017缺陷还是新功能?

C# VS2017缺陷还是新功能?,c#,roslyn,c#-7.0,C#,Roslyn,C# 7.0,升级到VS 2017后,我从该代码中得到以下错误(该代码一直运行良好) 解决方法是用括号括住表达式 for (int i = 0; i < (hex.Length >> 1); ++i) 用于(int i=0;i>1);+i) 但这让我想知道这是一个bug还是一个新功能? 谢谢。谢谢您的报道。这是在解析优先级方面的确认回归。此修复程序最迟将在VS2017的第一个季度发布 有关修复的信息:这是一个bug,相当大,单击“新问题”按钮。@NineBerry除非OP在升级到VS20

升级到VS 2017后,我从该代码中得到以下错误(该代码一直运行良好)

解决方法是用括号括住表达式

for (int i = 0; i < (hex.Length >> 1); ++i)
用于(int i=0;i<(hex.Length>>1);+i)
但这让我想知道这是一个bug还是一个新功能?
谢谢。

谢谢您的报道。这是在解析优先级方面的确认回归。此修复程序最迟将在VS2017的第一个季度发布


有关修复的信息:

这是一个bug,相当大,单击“新问题”按钮。@NineBerry除非OP在升级到VS2017之前使用了C#1.0,否则我不确定这是一个合适的dupe目标。对于任何感兴趣的人,@NineBerry:不是dupe;正如对该问题的回答所述,当遵循规范时,此特定解析是一个错误,因为
(即另一个
)后面的标记不是允许解释为类型参数列表的列表之一。如果编译器口述了该语言,“编译器只是简单地改变了启发式”将是有效的,但即使你认为它是有效的,这个问题仍然不是重复的。不过,这是一个很好的参考资料。作为一个完全无关的旁白,如果你想把东西除以2,那么就写
x/2
,而不是
x>>1
。一直以来,人们误认为位移位“更快”,因此应该优先考虑。这不是,也不应该。写下你的意思。当您将其与旨在获取特定位的位移位(如

Error 1: The variable 'i' cannot be used with type arguments
Error 2: 'hex' is a variable but is used like a type    
for (int i = 0; i < (hex.Length >> 1); ++i)