visual studio muestra mostrar los errores como c# .net visual-studio compiler-errors visual-studio-2015

c# - studio - como mostrar los errores en c++



Tratando de reproducir el error del compilador "debe declarar un cuerpo" (2)

Está utilizando Visual Studio 2015, que implementa C # 6. El hecho de que esté apuntando a .NET 4 es irrelevante; la mayoría de las características del lenguaje C # 6 no dependen en absoluto de las características del framework. El código C # 6 que está utilizando se puede compilar fácilmente sin referencia a ninguna característica moderna de CLR o framework, podría haber funcionado con .NET 1.0 si los diseñadores de idiomas hubieran decidido :)

Deberá configurar su nivel de idioma en C # 5 para ver un error aquí. Haz eso en el diálogo de Propiedades del proyecto / Construir / Avanzado:

A continuación, obtendrá este error:

error CS8026: la característica ''propiedades recién actualizadas automáticamente'' no está disponible en C # 5. Utilice la versión de idioma 6 o superior.

Es cierto que ese no es el error que realmente quería ver, creo que necesitará usar una versión anterior del compilador para obtener ese error exacto.

Estoy tratando de reproducir el error CS0840 del compilador de C # con el código exacto que se da en el sitio web:

class Test36 { public int myProp { get; } // CS0840 // to create a read-only property // try the following line instead public int myProp2 { get; private set; } } public Form1() { InitializeComponent(); Test36 test = new Test36(); }

Lo estoy ejecutando en .NET 4.0 usando Visual Studio Community 2015. Sorprendentemente, no puedo reproducirlo. El compilador no arroja ningún error:

¿Por qué el compilador no está arrojando ningún error?


Supongo que es porque estás en Visual Studio 2015 con C # 6, lo que te permite especificar propiedades que solo están configuradas desde el constructor (también conocidas como propiedades de solo lectura ).

Vea el siguiente ejemplo:

class Test { public Test() // <-- this one does compile since it is the constructor { MyProp = 1; } public void SomeMethod() // <-- this one doesn''t compile { MyProp = 1; } public int MyProp { get; } // <-- no CS0840 any more! }