2010-03-29 10 views
6

Como estoy comenzando a poner más seguimiento en mi código, me doy cuenta de que agrega mucho desorden. Sé que Visual Studio te permite ocultar y revelar código. Sin embargo, me gustaría poder codificar el código de grupo en "rastreo" y luego esconderlo y revelar a voluntad mientras leo el código. Supongo que podría hacer esto por archivo o por clase o por función.¿Cómo puedo ocultar el código de seguimiento en Visual Studio IDE C#?

¿Hay alguna manera de hacer esto? ¿Qué hacen chicos?

Agregando un poco de aclaración función actual

La piel tipo de le permite hacer esto, excepto que cuando el código está oculto, no se puede saber si su trazado o no. Tampoco puede decir "ocultar todo el código de rastreo" y "revelar todo el código de rastreo", que es útil al leer una función, dependiendo de lo que esté tratando de hacer.

Respuesta

0

¿Has considerado #region?

int x = 3; 
    x++; 

#region Trace 
    // ... 
#endregion 

    x += 2; 

VS automáticamente le permitirá expandir u ocultar la región.

+0

¿Cómo se ocultarían todas las regiones de rastreo en una clase o método? – Mark

+0

Construir una macro VS para ocultar/mostrar regiones coincidentes lo haría – CResults

+0

Aunque no me gusta, terminé usando regiones, así que estoy marcando esto como la respuesta. – Mark

1

Te aconsejo no esconderlo. Si hay un código repetitivo que está llegando a la etapa en la que debe ocultarse para que pueda ver el código "real", entonces es mejor encontrar una mejor manera de separar las preocupaciones.

Esto suele ser cierto para el código de seguimiento/depuración. Algo que he visto recientemente fue utilizar un marco AOP para inyectar instrucciones de depuración en otras clases. Eche un vistazo a PostSharp, El example demuestra cómo hacer exactamente eso.

+0

¿El AOP se ha convertido en una tecnología ampliamente utilizada para ser fácilmente disponible y confiable? Hay mucho escrito al respecto pero, por ejemplo, no viene incorporado en .NET Framework. Supongo que aún no está lo suficientemente maduro. Además, ¿qué ocurre con el seguimiento de métodos (es decir, no solo la entrada de métodos y la salida de métodos)? – Mark

+0

Hay varias bibliotecas que le permiten hacer este tipo de cosas para .NET. No se envía como parte del marco, pero eso no es necesariamente una razón para no usarlo. No creo que AOP sea una bala de plata para este tipo de cosas, pero creo que simplemente "esconder" el código feo es definitivamente el enfoque equivocado. – TarkaDaal

+0

En cuanto al rastreo de métodos, yo diría que si sus métodos son lo suficientemente largos como para exigir eso, se están haciendo demasiado largos. – TarkaDaal

Cuestiones relacionadas