Trabajando con programadores que utilizan el lenguaje C# veo errores comunes en todos ellos. Son errores comunes, pero que pueden causar un gran impacto en la performance y porque no en el mismo programa que están desarrollando. Es por eso, que resulta importante corregir los errores de concepto y/o programación para que nuestras aplicaciones resulten eficientes y con mucha calidad. Por lo tanto decidí crear una pequeña lista de 5 errores comunes en la programación en C#.

  1. Obtener o almacenar datos en la Base de Datos en varias llamadas.
  2. Este error es muy común en desarrolladores principiantes, pues intentan realizar las operaciones por cada línea o registro, utilizando algún iterador que permita recorrer los objetos y vaya realizando cambios en la base de datos, sin contar que dejan abierta la conexión con la base de datos por cada modificación.

    Básicamente, esto se corrige almacenando los cambios en alguna lista genérica, o si estamos trabajando con EntityFramework podríamos realizar los cambios previamente y por último llamar al método SubmitChanges() que hará de una vez las modificaciones en la Base de datos, como corresponde.

  3. Utilización de iteradores equivocados.
  4. Generalmente este error ocurre con los iteradores foreach y for. Cuando trabajamos con colecciones (Clases especializadas que poseen la interfaz IEnumerator) lo recomendable es utilizar siempre el ciclo foreach. Sin embargo, cuando utilizamos algún array o cualquier arreglo que no implemente la interfaz IEnumerator el ciclo for basta y sobra.

  5. Manejo de errores.
  6. Manejar excepciones resulta muy útil pero debemos saber hacerlo. Un error común es realizar la siguiente codificación:

            try
            {
                //Intentar hacer algo
                string hola = "HOLA";
                int test = int.Parse(hola);
            }
            catch{}
        

    Esto es erróneo por el hecho que hacemos trabajar al compilador de manera innecesaria, pues debemos tratar de ser lo más específico posible a la hora de atrapar los errores. Si sabemos cuales pueden ser las causas de una excepción debemos impedir que ocurra ese error esperado. Por lo tanto, lo correcto sería:

            try
            {
                //Intentar hacer algo
                string hola = "HOLA";
                int test = int.Parse(hola);
            }
            catch (InvalidCastException ice)
            {
                //Algún mensaje de error de conversión aquí
            }
        
  7. Concatenación de string exagerando con ‘+’.
  8. Otro error muy común es el abuso del ‘+’ en la concatenación de caracteres. Simplemente se debe utilizar la clase StringBuilder que sirve para realizar la concatenación de manera más eficiente utilizando menos recursos. Lo erróneo es:

            string texto = "Hola" + textBox1.Text + ", ¿Cómo estás?. Según los registros tienes: " + textBox2.Text + "años de edad.";
            MessageBox.Show(texto);
        

    El código no está mal pero no es eficiente. Lo eficiente sería:

            StringBuilder sb = new StringBuilder();
            sb.Append("Hola");
            sb.Append(textBox1.Text);
            sb.Append(", ¿Cómo estás?. Según los registros tienes: ");
            sb.Append(textBox2.Text);
            sb.Append("años de edad.");
    
            MessageBox.Show(sb.ToString());
        
  9. No utilizar ‘using’ para eliminar objetos.
  10. El último error de la lista es no utilizar ‘using’ para objetos que utilizaremos sólo un momento en nuestra programación. Se utiliza ‘using’ en cualquier elemento que posea la interfaz IDisposable (generalmente clases). Con esto logramos que los objetos sean liberados luego de ser utilizados

            SqlConnection conn = new SqlConnection("ConnectionStringAQUI");
            conn.Open();
            ...
            conn.Close();
        

    En el ejemplo, la cadena de conexión a SQL Server se cierra pero el objeto sigue ocupando un lugar en la memoria del ordenador. Lo importante y eficiente es cerrar la conexión y eliminar el objeto que ya no se utiliza.

            using (SqlConnection conn = new SqlConnection("ConnectionStringAQUI"))
            {
                conn.Open();
                ...
                conn.Close();
            }
        

De esta manera, mostré algunos errores comunes en el desarrollo con C#. Espero resulte útil y cualquier consulta en los comentarios. 😉

Leave a Reply

Your email address will not be published. Required fields are marked *