Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

297
Views
¿Por qué VS 2015 permite atributos separados por espacios mientras que VS 2017 no?

Tome el siguiente código simple. El método DoMyCode tiene dos atributos aplicados, con un espacio entre las entradas.

 using System; namespace AttributeSpaceTesting { class Program { static void Main(string[] args) { } [Horse Cow] static void DoMyCode() { } } [AttributeUsage(AttributeTargets.Method)] class HorseAttribute : Attribute { } [AttributeUsage(AttributeTargets.Method)] class CowAttribute : Attribute { } }

Esto se hizo en VS 2015 dirigido a .Net 4.6.

Si ejecuta este código en Visual Studio 2015 (actualización 3), se compilará y ejecutará sin errores ni advertencias.

Sin embargo, ejecutar exactamente el mismo código en Visual Studio 2017 producirá la siguiente excepción:

Error de sintaxis, ',' esperado

Entiendo por qué ocurre este error. Espero que necesite comas entre los elementos de atributo. En la sección 17.2 de las especificaciones de C# 5:

Una sección de atributos consta de un par de corchetes que rodean una lista separada por comas de uno o más atributos.

Entonces, ¿por qué esta sintaxis es legal en VS 2015?


Para un contexto completo, estoy experimentando con el uso de VS 2017 en los proyectos de prueba de unidad de mi equipo. He notado líneas como esta:

 [Description(@"The Test Description")] [TestCategory("Regression"), TestCategory("Module"), TestCategory("ModuleRegression") TestMethod] public void TC_12345_VerifyTheThingWorks()

que causan errores de sintaxis cuando se compilan en el nuevo sistema de Visual Studio.

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Gracias a Hans Passant que compartió esta información.

Parece que esto fue de hecho un error con el compilador roslyn . Se informó en octubre de 2016, mucho después del último lanzamiento de VS 2015 en junio del mismo año.

Esta solución llegó a Visual Studio 2017, por lo que esta sintaxis se notifica correctamente como un error.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!