Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

VB -> C#: Avoid creating code blocks for each case when converting Select Case

Abierto
#1,244 0 comentarios 1 reacción 0 asignados Ver en GitHub

@GrahamTheCoder ya está trabajando en esto.

Desde el 13/4/2026.

  • #1248 de @GrahamTheCoder — abierto

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
65/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
csharp
Área
tooling

Línea de trabajo

Comienza localizando la lógica de conversión de Select Case y el código que emite los bloques de las ramas case. Usa los fragmentos de VB proporcionados y los fragmentos de C# esperados como caso de regresión; el trabajo estará terminado cuando las ramas que no crean variables ya no reciban llaves ni indentación adicional, mientras que las ramas que necesitan variables conserven sus bloques.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement Good for coding agent

When converting a Select Case statement, each outcome is wrapped in braces, creating a code block. This adds unnecessary indentation.

For example:

    Private Shared Function d1mach(i As Integer) As Double
        Select Case i
            Case 1
                Return 2.2250738585072014E-308 ' the smallest positive magnitude.
            Case 2
                Return Double.MaxValu ' the largest magnitude.
        End Select
        Return 0
    End Function

Is converted as:

        private static double d1mach(int i)
        {
            switch (i)
            {
                case 1:
                    {
                        return 2.2250738585072014E-308d; // the smallest positive magnitude.
                    }
                case 2:
                    {
                        return double.MaxValue; // the largest magnitude.
                    }
            }
            return 0d;
        }

Proposed solution
When no variable is created in the case branch, avoid creating a code block. The output code would be:

        private static double d1mach(int i)
        {
            switch (i)
            {
                case 1:
                    return 2.2250738585072014E-308d; // the smallest positive magnitude.
                case 2:
                    return double.MaxValue; // the largest magnitude.
            }
            return 0d;
        }
Lenguaje dominante
C#
Estrellas
914
Forks
242
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de icsharpcode/CodeConverter

Todos los issues de icsharpcode/CodeConverter

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.