Inserciones condicionales

Cuando hacemos una inserción como ésta:

public void EsStoredProcedure(ref SqlCommand comando, bool esSP) {
    if (esSP)
        comando.CommandType = CommandType.StoredProcedure;
    else
        comando.CommandType = CommandType.Text;
}

Estamos haciendo mucho rollo para darle valor a una sola variable. Esto no solo afecta estéticamente a nuestro programa. También ocupa algunos bits de más si podemos resumirlo a una sola línea.

En C#, una inserción condicional es cuando “incluimos” el if dentro de la inserción, de esta manera:

public void EsStoredProcedure(ref SqlCommand comando, bool esSP) {
    comando.CommandType = (esSP ? CommandType.StoredProcedure : CommandType.Text);
}

La inserción condicional se divide en tres partes: la condición (if), el resultado si la condición es positiva (true) y el resultado si la condición es negativa (false). La condición es seguida por un signo de interrogación, y los dos resultados se dividen con un signo de dos puntos.

En VB.NET, existe una función llamada Iif, que hace más o menos lo mismo:

Public Sub EsStoredProcedure(ByRef comando As SqlCommand, ByVal esSP As Boolean) 
    comando.CommandType = Iif(esSP, CommandType.StoredProcedure, CommandType.Text)
End Sub 

La diferencia es que C# evalúa solamente la condición y la inserción que se va a realizar, mientras VB evalúa las tres expresiones en la función Iif. Esto es un punto negativo, pues nos podemos topar con esta situación:

Public Function ObtenerDato(ByRef tabla As DataTable) As String
    Return Iif (tabla.Rows.Count > 0, tabla.Rows(0)("columna").ToString(), "")
End Function

En VB se evalúan las tres expresiones durante la ejecución. Suponiendo que la tabla no tiene ninguna fila, la aplicación generará un error de tipo NullReferenceException, pues la segunda parte de la función llama a una columna dentro de una fila inexistente.

Por cosas como ésta, prefiero C# sobre VB.NET.

Anuncios

VB.NET – Propiedades (diferencias con C#)

Como continuación al post anterior, sobre Propiedades en C#, en éste voy a explicar cómo se declaran estos elementos en VisualBasic.NET.

Leer más “VB.NET – Propiedades (diferencias con C#)”

C# – Propiedades

En .NET podemos crear y utilizar un elemento especial, denominado Propiedad, que aunque a simple vista parece ser una variable cualquiera, puede esconder una funcionalidad tan compleja como lo necesitemos.

Leer más “C# – Propiedades”

C#: Valor nulo para tipos de datos comunes

Es extraño incorrecto ridículo estúpido curioso que a los datos de tipo int, string, char, byte, float, double, etc. no se les pueda asignar un valor nulo. Esto no sería de importancia para nosotros si no fuera porque en C#, siempre debemos darle un valor a toda variable al ser inicializada, ya sea utilizando el constructor de su clase o, como solemos hacer para solventar este problema, inicializarla con valor nulo. ¿Pero qué hacemos si la clase no nos permite asignar este valor? Muy fácilmente nos toparemos con este problema mientras programamos, pero existe una solución.

Leer más “C#: Valor nulo para tipos de datos comunes”

.NET Framework

Habrá quienes den con este blog queriendo saber qué es esto del .NET, con qué se come. En este primer post hablaré de lo que trata esta plataforma y los distintos ámbitos de desarrollo que abarca y para lo que nos es útil.

Habrá quienes den con este blog queriendo saber qué es esto del .NET, con qué se come. En este primer post hablaré de lo que trata esta plataforma y los distintos ámbitos de desarrollo que abarca y para lo que nos es útil.

Leer más “.NET Framework”

Bienvenidos

Hola y bienvenidos a este espacio en la red, en el que compartiré mis conocimientos y experiencias de desarrollo y programación.

Este blog, como el nombre lo indica, estará dedicado principalmente a Microsoft .NET Framework, aunque también hablaré sobre SQL Server, HTML, Javascript, CSS, y cualquier aspecto relacionado con la programación en lo que tenga algún conocimiento.

Aunque es en parte algo personal, espero que sirva a quienes me visiten como un apoyo y guía en sus proyectos, cuando se queden atorados. Son libres de solicitar que hable de algún tema (claro, mientras esté en mis posibilidades :P)