2009-03-07 20 views
10

Para C# Visual Studio utiliza 4 espacios de forma predeterminada, mientras que para C++ son pestañas difíciles. ¿Por que es esto entonces? ¿Por qué es diferente?¿Por qué Visual Studio usa configuraciones de indentación diferentes para C# y para C++?

Mi proyecto consiste en código C# y C++ y la diferencia realmente me molesta. Quiero establecer un estándar común para todas las fuentes, pero me pregunto si esto tendría algún inconveniente.

+0

En un intento, compatibilidad con versiones anteriores de MSVC++? – rjh

Respuesta

13

Si está buscando una justificación completamente lógica y bien razonada para esta diferencia, no creo que encuentre una. A pesar de las muchas guerras de flamas alrededor de las pestañas contra los espacios, realmente no hay un verdadero ganador (de lo contrario, la guerra habría terminado).

La forma de evitar esto es a través de un archivo .vssettings. Cuando comencé con VS 2005, configuré las pestañas/espacios predeterminados en cada idioma. Puede hacerlo a través de Herramientas -> Opciones -> Editor de texto -> (C#/C++). Luego exporto las configuraciones de pestañas en un archivo .vsssettings. Cada vez que instalo VS en una máquina nueva, solo importo ese archivo y tengo mis configuraciones de espacios/pestañas alegres.

PS: espacios descarta :)

+0

Puede cambiar estas configuraciones directamente en herramientas-> opciones también. Pero la opción .vssettings parece útil para llevar la configuración contigo cuando trabajas en una máquina diferente – jalf

+3

+1, a pesar de la última oración:/ –

1

dudo que haya algún inconveniente como la gramática de C++ no distingue entre pestañas y espacios. Por cierto, creo que la mejor manera de establecer estándares de estilo de código es exportar la configuración de VS y compartirla con el equipo.

+0

No creo que la gramática C# también se distinga. Creo * que el único idioma que tiene una distinción es F # que prefiere espacios. – JaredPar

+0

No. La gramática C# tampoco distingue. Existen muchos lenguajes de alto nivel, por lo que muchos de ellos probablemente distingan espacios y pestañas: http://en.wikipedia.org/wiki/Whitespace_(programming_language) –

+0

Estoy seguro de que los hay. IIRC python distingue el espacio en blanco, pero no estoy seguro si le importa tab/spaces o no. – JaredPar

1

La razón detrás de los 4 espacios por defecto de C# es que quien abra el archivo, la sangría será la misma.

Puede cambiarlo como lo desee en sus preferencias.

+0

¿Alguna fuente sobre esto? –

0

para C# Visual Studio usa 4 espacios por defecto, mientras que para C++ es difícil-pestañas. ¿Por que es esto entonces?

¿Por qué no?

Simplemente cámbialo si no estás satisfecho.

+0

Eso está muy lejos de ser una respuesta, no estoy seguro de por qué has publicado esto. – TheSoftwareJedi

+0

Bueno, ¿por qué no? el argumento tabulaciones v espacios nunca va a terminar, entonces ¿por qué los dos idiomas no deberían tener diferentes valores predeterminados? ¿Probablemente fueron trabajados por equipos con diferentes religiones de espacios en blanco? Honestamente, solo cámbialo si no eres feliz, no es difícil. –

1

Simplemente vaya con lo que prefiera, normalmente uso pestañas en C++. Quienes miran mi código utilizan todas las pestañas RE de la configuración de VS por defecto, por lo que no hay una verdadera atracción para reemplazarlo con espacios. No estoy seguro de cómo es ahora, pero cuando F # estaba en su infancia (es decir, una versión bastante temprana de MSR), necesitaba usar espacios en el código #light, de lo contrario, el compilador se quejaría ya que el espacio en blanco era importante.

Diferentes personas tienen diferentes preferencias, conozco algunas que usan espacios religiosamente, por otro lado sé más que usa pestañas.

-1

Los espacios dificultan la navegación por el código con el teclado.

Con espacios, la mayoría de las personas usará cuatro espacios, pero algunos usarán dos o tres. Con las pestañas, las personas que desean que su código se muestre con dos espacios, simplemente pueden configurar el carácter de tabulación para que se muestre tan ancho como dos espacios, y el estilo de codificación permanece constante.

Si está utilizando espacios para pestañas en cualquier HTML, CSS o JavaScript, lo está haciendo mal. No hay debate de tabulaciones contra espacios para html/css/js, ya sean pestañas o ignorancia. El código del lado del cliente no está compilado, e IIS no tiene la compresión activada por defecto - exceso de espacio en blanco = exceso de grasa.

Hace mucho tiempo, VB6 no nos dio la opción de usar pestañas, pero ahora podemos y debemos - si no lo hace, su código hace que parezca que todavía se aferra a la vieja escuela.

Así que deje de codificar como si fuera 1999. Use pestañas. Hazlo por los niños.

+0

Lo siento? Esta es una preferencia personal. Yo * do * prefiero las pestañas, en realidad. Pero no lo enciendas. –

+1

Si le importa el ancho de banda, simplemente comprima sus archivos fuente. El ancho de banda no debe influir en la forma en que prefiera escribir el código. –

4

Por supuesto, las pestañas son la única forma correcta. Tab puede hacer todo lo que los espacios pueden hacer. Los espacios no pueden hacer mucho de lo que la pestaña puede hacer.

Las pestañas permiten un cambio fácil de la sangría y una navegación fácil sin tener que presionar las teclas de flecha demasiadas veces, y tendrían que mantener el control.

La verdadera solución es que el editor pueda navegar y tabular el archivo sangrado como si tuviera espacio sangrado, si el usuario así lo prefiere. El archivo se guardará con pestañas. Muy simple y complaciente para todos.

El problema en C# 2010 es que no puedo encontrar ninguna opción para cambiarlo a pestañas.

+0

Obviamente, todavía está utilizando un paradigma de edición de texto no óptimo: P En VS tienen ViEmu. – kizzx2

-3

El argumento tabulaciones vs espacios tiene una respuesta simple: pestañas. Las pestañas le permiten especificar su sangría sin forzar a otros a vivir con ella. Dado que los tamaños de las pestañas son simplemente una preferencia personal, un usuario no debería ser capaz de obligar a otros a seguir sus opciones de visualización.

Por qué la diferencia entre C++ y C#: no hay pista. Sin embargo, sabiendo que las pestañas son lógicamente una mejor opción, simplemente cambie el C# (y de hecho, todos los idiomas) a pestañas y voila.

Cuestiones relacionadas