2011-08-30 21 views
5

Hoy encontré un código de C# que no había visto antes. El programador definió un bloque de código usando solo llaves (no si, clase, función, etc.).llaves flotantes flotantes en C#

{ 
    int i = 0; 
} 
i++; //compile error 

¿Hay algún otro propósito que hacer que el código se vea más organizado? ¿Es bueno, malo o cualquier práctica utilizar estos contextos "flotantes"?

+0

http://stackoverflow.com/questions/249009/do-you-use-curly-braces-for-additional-scoping – luketorjussen

+1

perdón por la pregunta duplicada, pensé que había buscado bastante en Google! – prestomanifesto

+0

Esto no debería haber sido marcado ** duplicado ** a una pregunta de 2008 que fue editada en 2010 a ** incorrectamente ** incluir 'C#' cuando todas las respuestas son ** claramente no C# **. Nominando que sea ** reabierto ** – MickyD

Respuesta

9

Puede usar un conjunto de llaves abiertas y cerradas para definir un bloque que lo contenga, que tiene su propio alcance.

Esto generalmente no se considera una buena práctica de programación.

Por lo general, si alguien está haciendo algo como esto, probablemente sea mejor crear un método/función en su lugar.

0

El propósito de esto es ilustrar que el int i está en realidad en un alcance diferente al incrementado i debajo de él.

1

No hay ningún propósito para ese código en absoluto. Probablemente un artefacto de otra cosa que estaba tratando de hacer. Como muestra el comentario, esto ni siquiera se compilará porque i está fuera del alcance.

Desde una perspectiva de estilo de codificación, personalmente no me gusta y nunca he visto a alguien usar soportes flotantes para "organizar" su código antes.

1

Las llaves {} en C# definen el alcance. Cualquier cosa definida dentro de ellos sale "fuera del alcance" una vez que se terminan las llaves.

El ejemplo parece un tanto inútil. No puedo imaginar por qué se usaría en el código del mundo real. Supongo que redujo el código presentado.

+0

Ya. La forma en que se usaba realmente era en una página ASP que estaba representando manualmente algún código html. Las llaves se usaron para sangrar lógicamente lo que estaba dentro de cada elemento. – prestomanifesto

1

Cualquier variable dentro del "alcance" de estas llaves estará fuera de su alcance fuera de este.

0

Limita el alcance de la variable dentro de ese bloque. Entonces la variable no podría ser vista fuera de esos apoyos.

También puede ser una preferencia sobre si alguien quiere separar el código, pero usarlo cuando no sea necesario en la mayoría de los casos sería superfluo.