c# roslyn c#-7.0

c# - VS 2017 Bug o nuevas características?



roslyn c#-7.0 (1)

Gracias por reportar esto Esta es una regresión confirmada en la precedencia de análisis. Esta solución se enviará en el primer lanzamiento trimestral de VS2017 a más tardar.

Información sobre la solución: https://github.com/dotnet/roslyn/pull/16834

Después de actualizar a VS 2017, recibí el siguiente error de este código (que siempre ha funcionado perfectamente)

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; }

Excepción:

Error 1: The variable ''i'' cannot be used with type arguments Error 2: ''hex'' is a variable but is used like a type

La solución fue rodear la expresión entre paréntesis.

for (int i = 0; i < (hex.Length >> 1); ++i)

Pero eso me hizo preguntarme: ¿es esto un error o una nueva funcionalidad? Gracias.