2017-03-08 64 views
24

升級到VS 2017年後,我得到了這個代碼下面的錯誤(這一直可以正常使用)VS 2017錯誤或新功能?

byte[] HexStringToByteArray(string hex) 
    { 
     if (hex.Length % 2 == 1) 
      throw new Exception("The binary key cannot have an odd number of digits"); 

     byte[] arr = new byte[hex.Length >> 1]; 

     for (int i = 0; i <hex.Length>> 1; ++i) // Error in this line 
     { 
      arr[i] = (byte)((GetHexVal(hex[i << 1]) << 4) + (GetHexVal(hex[(i << 1) + 1]))); 
     } 

     return arr; 
    } 

例外:

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) 

但這讓我想知道這是一個錯誤還是一個新功能? 謝謝。

+1

不管它是解決方案看起來更乾淨的代碼。 – bansi

+4

這是一個很大的錯誤。 [它屬於](https://github.com/dotnet/roslyn/issues),點擊新問題按鈕。 –

+1

可能的重複[編譯器錯誤:「錯誤CS0307:變量'int'不能用於類型參數」](http://stackoverflow.com/questions/39669720/compiler-error-error-cs0307-the-variable- int-can-be-used-type-argum) – NineBerry

回答