C Sharp

Se produce un error de compilación "el tipo de expresión no es valido" con la declaración de variables alineada

Se produce un error de compilación "el tipo de expresion no es valido" con la declaración de variables alineada. Por ejemplo, en el siguiente fragmento de código:

bool isNum = Double
              .TryParse(value, 
                          System.Globalization.NumberStyles.Any,
                          System.Globalization.NumberFormatInfo.InvariantInfo, 
                          out double retNum);

 

¿Cómo llamar a un método asíncrono desde un método síncrono?

Dada la particularidad de la ejecución de métodos asíncronos, éstos no pueden ser llamados desde un método síncrono de una forma normal.

C# no nos permite llamar llamar a un método asíncrono sin utilizar await. Y para poder utilizar await, necesitamos que el método llamante sea asíncrono (debe tener el modificador async en su definición).

Literales

  • Un literal es una representación en código fuente de un valor. Existen literales de varios tipos:
    • Booleanos: consta de las palabras clave True (verdadero) y False (falso). Tienen asociado un valor entero, -1 para True y 0 para False.

Enumeraciones

  • Una enumeración es un tipo especial de datos que deriva de System.Enum, y asigna nombres a valores
  • El valor puede ser de tipo byte, short, int o long
  • Una enumeración se declara con un identificador precedido de la palabra enum
    private enum Colores
    {
       Rojo,
       Verde,
       Azul,
       Amarillo
    }
  • Si no se especifica un número, se asignará el valor 1 al primer nombre, 2 al segundo, etc... Así, en el ejemplo anterior, Rojo valdrá 1, Verde valdrá 2, y así sucesivamente

Cadenas

  • Las cadenas en C# usan el tipo de datos string. Representa una cadena de caracteres Unicode.
    string miCadena;
    miCadena = "Esto es una cadena";
  • Los tipos string se comportan como matrices de caracteres, pudiendo acceder a posiciones específicas mediante el uso de un índice.
    string miCadena;
    miCadena="Esto es una prueba";

Tipos de valor y tipos de referencia

  • Existen dos variedades de tipos de datos: tipos de valor y tipos de referencia:
    • Los tipos de valor son variables generadas utilizando los tipos de datos integrados básicos (como int o char), o estructuras definidas por el usuario
      • Almacena su contenido en la memoria asignada en la pila
      • Cuando la ejecución del programa sale del ámbito de la variable, su valor desaparece de la pila

Expresiones Lambda

  • Una expresión lambda es una forma de implementar código allí donde se espera un parámetro de tipo delegado.
    Func<string, string> lambda = param =>
    {
       param += " con sufijo añadido";
    }
    
    Console.WriteLine(lambda("esto es un texto"));

    La salida por pantalla del ejemplo anterior sería "esto es un texto con sufijo añadido"

Métodos anónimos

  • Un método anónimo es un bloque de código que se usa como parámetro para un delegado.
  • Se precede igualmente de la palabra reservada delegate
    Func<string, string> Anonimo = delegate (string parametro)  // No se indica ningún nombre de función
    {                                                           // Únicamente se envuelve en {}
    	parametro += " con mas texto";                          
    	return parametro;
    };
    

Delegados

  • Los delegados se utilizan en las situaciones en las que se hace necesario pasar un método como parámetro a otro método. Suelen utilizarse en:
    • Programación multihilo
    • Bibliotecas de clases genéricas
    • Manejo de eventos
  • Se asemejan al concepto de "punteros de funciones" de C y C++, pero con seguridad de tipos
  • El manejo de delegados implica:
    • Definición: consta de la palabra reservada delegate, seguida del tipo de dato devuelto por la función, el nombre del delegado, y los parámetros de la función. Por ejemplo:

Conceptos avanzados

En este segundo bloque, veremos conceptos un poco más avanzados del uso de C Sharp, como las funciones delegadas, funciones lambda, o acceso a bases de datos

Páginas

Suscribirse a RSS - C Sharp